diff --git a/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java b/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java
new file mode 100644
index 0000000000000000000000000000000000000000..bec00b99af94dda933f75f5c5bc497f7941f429f
--- /dev/null
+++ b/core/src/test/java/cz/muni/fi/pa165/core/manufacturer/UnitTestManufacturerJPA.java
@@ -0,0 +1,149 @@
+package cz.muni.fi.pa165.core.manufacturer;
+
+import cz.muni.fi.pa165.core.device.Device;
+import cz.muni.fi.pa165.core.device.DeviceRepository;
+import cz.muni.fi.pa165.core.house.HouseRepository;
+import cz.muni.fi.pa165.core.smartmeter.SmartMeterRepository;
+import cz.muni.fi.pa165.core.user.UserRepository;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(SpringRunner.class)
+@DataJpaTest
+public class UnitTestManufacturerJPA {
+    @Autowired
+    private TestEntityManager entityManager;
+    @Autowired
+    private HouseRepository houseRepository;
+    @Autowired
+    private SmartMeterRepository smartMeterRepository;
+    @Autowired
+    private UserRepository userRepository;
+
+    @Autowired
+    private ManufacturerRepository manufacturerRepository;
+
+    @Autowired
+    private DeviceRepository deviceRepository;
+
+    @Test
+    public void createTesting() throws Exception {
+        String manufacturer = this.entityManager.persistAndGetId(new Manufacturer()).toString();
+        // Regular expression to match UUID format
+        Pattern uuidPattern = Pattern.compile(
+                "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+                Pattern.CASE_INSENSITIVE);
+        // Check if the string matches the UUID format
+        boolean isUUID = uuidPattern.matcher(manufacturer).matches();
+        assertThat(isUUID).isTrue();
+    }
+
+    @Test
+    public void shouldFindNoneIfRepositoryIsEmpty() {
+        Iterable<Manufacturer> manufacturers = manufacturerRepository.findAll();
+        assertThat(manufacturers).isEmpty();
+    }
+
+    private Manufacturer helperRegister() {
+        Iterable<Device> deviceIterable;
+        deviceIterable = deviceRepository.saveAll(List.of(new Device(), new Device(), new Device()));
+        List<Device> list = StreamSupport.stream(deviceIterable.spliterator(), false)
+                .collect(Collectors.toList());
+        return manufacturerRepository.save(new Manufacturer("Manufacturer1", list));
+    }
+
+    @Test
+    public void shouldStore() {
+        Manufacturer manufacturer = helperRegister();
+
+        assertThat(manufacturer).hasFieldOrPropertyWithValue("name", "Manufacturer1");
+    }
+
+    @Test
+    public void shouldFindAll() {
+        Manufacturer m = new Manufacturer();
+        entityManager.persist(m);
+
+        Manufacturer m1 = new Manufacturer();
+        entityManager.persist(m1);
+
+        Manufacturer m2 = new Manufacturer();
+        entityManager.persist(m2);
+
+        assertThat(manufacturerRepository.findAll()).hasSize(3).contains(m, m1, m2);
+    }
+
+    @Test
+    public void shouldFindById() {
+        Manufacturer m = new Manufacturer();
+        entityManager.persist(m);
+
+        Manufacturer m1 = new Manufacturer();
+        entityManager.persist(m1);
+
+        Manufacturer m2 = new Manufacturer();
+        entityManager.persist(m2);
+
+        Manufacturer found = manufacturerRepository.findById(m.getId()).get();
+
+        assertThat(found).isEqualTo(m);
+
+        found = manufacturerRepository.findById(m.getId()).get();
+
+        assertThat(found).isEqualTo(m);
+    }
+
+    @Test
+    public void shouldUpdateById() {
+        Manufacturer m = new Manufacturer();
+        entityManager.persist(m);
+
+        Manufacturer m1 = new Manufacturer();
+        entityManager.persist(m1);
+
+        Manufacturer update = manufacturerRepository.findById(m.getId()).get();
+        update.setName("New name");
+        manufacturerRepository.save(update);
+
+        Manufacturer check = manufacturerRepository.findById(m.getId()).get();
+
+        assertThat(check.getId()).isEqualTo(m.getId());
+        assertThat(check.getName()).isEqualTo(m.getName());
+    }
+
+    @Test
+    public void shouldDeleteById() {
+        Manufacturer m = new Manufacturer();
+        entityManager.persist(m);
+
+        Manufacturer m1 = new Manufacturer();
+        entityManager.persist(m1);
+
+        manufacturerRepository.deleteById(m.getId());
+
+        assertThat(manufacturerRepository.findAll()).hasSize(1).contains(m1);
+        assertThat(manufacturerRepository.findAll()).hasSize(1).doesNotContain(m);
+    }
+
+    @Test
+    public void shouldDeleteAll() {
+        entityManager.persist(helperRegister());
+        entityManager.persist(helperRegister());
+
+        manufacturerRepository.deleteAll();
+
+        assertThat(manufacturerRepository.findAll()).isEmpty();
+    }
+}
+
diff --git a/core/src/test/java/cz/muni/fi/pa165/core/smartmeter/UnitTestSmartMeterJPA.java b/core/src/test/java/cz/muni/fi/pa165/core/smartmeter/UnitTestSmartMeterJPA.java
new file mode 100644
index 0000000000000000000000000000000000000000..fff444c493efde0d2816f70508d465699e674b94
--- /dev/null
+++ b/core/src/test/java/cz/muni/fi/pa165/core/smartmeter/UnitTestSmartMeterJPA.java
@@ -0,0 +1,153 @@
+package cz.muni.fi.pa165.core.smartmeter;
+
+import cz.muni.fi.pa165.core.device.Device;
+import cz.muni.fi.pa165.core.device.DeviceRepository;
+import cz.muni.fi.pa165.core.house.House;
+import cz.muni.fi.pa165.core.house.HouseRepository;
+import cz.muni.fi.pa165.core.metrics.Metrics;
+import cz.muni.fi.pa165.core.metrics.MetricsRepository;
+import cz.muni.fi.pa165.core.user.UserRepository;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import java.util.stream.StreamSupport;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(SpringRunner.class)
+@DataJpaTest
+public class UnitTestSmartMeterJPA {
+    @Autowired
+    private TestEntityManager entityManager;
+    @Autowired
+    private HouseRepository houseRepository;
+    @Autowired
+    private SmartMeterRepository smartMeterRepository;
+    @Autowired
+    private UserRepository userRepository;
+
+    @Autowired
+    private DeviceRepository deviceRepository;
+    @Autowired
+    private MetricsRepository metricsRepository;
+
+    @Test
+    public void createTesting() throws Exception {
+        String m = this.entityManager.persistAndGetId(new SmartMeter()).toString();
+        // Regular expression to match UUID format
+        Pattern uuidPattern = Pattern.compile(
+                "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
+                Pattern.CASE_INSENSITIVE);
+        // Check if the string matches the UUID format
+        boolean isUUID = uuidPattern.matcher(m).matches();
+        assertThat(isUUID).isTrue();
+    }
+
+    @Test
+    public void shouldFindNoneIfRepositoryIsEmpty() {
+        Iterable<SmartMeter> m = smartMeterRepository.findAll();
+        assertThat(m).isEmpty();
+    }
+
+    private SmartMeter helperRegister() {
+        Iterable<Metrics> metrics;
+        metrics = metricsRepository.saveAll(List.of(new Metrics(), new Metrics(), new Metrics()));
+        List<Metrics> list = StreamSupport.stream(metrics.spliterator(), false)
+                .collect(Collectors.toList());
+        Device device = deviceRepository.save(new Device());
+        House house = houseRepository.save(new House());
+        return smartMeterRepository.save(new SmartMeter("OneT Tesla 1232", device, house, list));
+    }
+
+    @Test
+    public void shouldStore() {
+        SmartMeter smartMeter = helperRegister();
+
+        assertThat(smartMeter).hasFieldOrPropertyWithValue("name", "OneT Tesla 1232");
+    }
+
+    @Test
+    public void shouldFindAll() {
+        SmartMeter m = new SmartMeter();
+        entityManager.persist(m);
+
+        SmartMeter m1 = new SmartMeter();
+        entityManager.persist(m1);
+
+        SmartMeter m2 = new SmartMeter();
+        entityManager.persist(m2);
+
+        assertThat(smartMeterRepository.findAll()).hasSize(3).contains(m, m1, m2);
+    }
+
+    @Test
+    public void shouldFindById() {
+        SmartMeter m = new SmartMeter();
+        entityManager.persist(m);
+
+        SmartMeter m1 = new SmartMeter();
+        entityManager.persist(m1);
+
+        SmartMeter m2 = new SmartMeter();
+        entityManager.persist(m2);
+
+        SmartMeter found = smartMeterRepository.findById(m.getId()).get();
+
+        assertThat(found).isEqualTo(m);
+
+        found = smartMeterRepository.findById(m.getId()).get();
+
+        assertThat(found).isEqualTo(m);
+    }
+
+    @Test
+    public void shouldUpdateById() {
+        SmartMeter m = new SmartMeter();
+        entityManager.persist(m);
+
+        SmartMeter m1 = new SmartMeter();
+        entityManager.persist(m1);
+
+        SmartMeter update = smartMeterRepository.findById(m.getId()).get();
+        update.setName("New name");
+        smartMeterRepository.save(update);
+
+        SmartMeter check = smartMeterRepository.findById(m.getId()).get();
+
+        assertThat(check.getId()).isEqualTo(m.getId());
+        assertThat(check.getName()).isEqualTo(m.getName());
+    }
+
+    @Test
+    public void shouldDeleteById() {
+        SmartMeter m = new SmartMeter();
+        entityManager.persist(m);
+
+        SmartMeter m1 = new SmartMeter();
+        entityManager.persist(m1);
+
+        smartMeterRepository.deleteById(m.getId());
+
+        assertThat(smartMeterRepository.findAll()).hasSize(1).contains(m1);
+        assertThat(smartMeterRepository.findAll()).hasSize(1).doesNotContain(m);
+    }
+
+    @Test
+    public void shouldDeleteAll() {
+        entityManager.persist(helperRegister());
+        entityManager.persist(helperRegister());
+
+        smartMeterRepository.deleteAll();
+
+        assertThat(smartMeterRepository.findAll()).isEmpty();
+    }
+}
+
+