diff --git a/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java b/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java
index 0a6e95ea9cbe91c0884dc99959848b3245218a74..17273a5a8b86e7113ea6bb1415686a2f92fef31a 100644
--- a/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java
+++ b/car/src/main/java/cz/muni/pa165/car/data/repository/CarRepository.java
@@ -1,12 +1,23 @@
 package cz.muni.pa165.car.data.repository;
 
-
 import cz.muni.pa165.car.data.model.Car;
+import java.util.List;
+import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 /**
  * Car Repository for Driver Manager.
  */
 @Repository
-public interface CarRepository extends JpaRepository<Car, Long> {}
+public interface CarRepository extends JpaRepository<Car, Long> {
+
+  @Query("SELECT c FROM Car c WHERE c.id = :id")
+  Optional<Car> findById(@Param("id") Long id);
+
+  @Query("SELECT c FROM Car c")
+  List<Car> findAll();
+
+}
diff --git a/component/pom.xml b/component/pom.xml
index 9b25686fc78bd88a2147b3846ac79b44e0d96839..4e6c25d3423eaa8f57edf40187a810e7b843464f 100644
--- a/component/pom.xml
+++ b/component/pom.xml
@@ -48,6 +48,12 @@
             <artifactId>spring-data-jpa</artifactId>
             <version>3.0.2</version>
         </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.12</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
diff --git a/component/src/main/java/cz/muni/pa165/component/App.java b/component/src/main/java/cz/muni/pa165/component/App.java
index 6509fc53585d232a161f6f2aea8c9aa1291c5299..4e6c468adf2fe106355cf5266674cef8113ab522 100644
--- a/component/src/main/java/cz/muni/pa165/component/App.java
+++ b/component/src/main/java/cz/muni/pa165/component/App.java
@@ -1,22 +1,27 @@
 package cz.muni.pa165.component;
 
-import cz.muni.pa165.common_library.exception.RestExceptionHandler;
+import jakarta.persistence.EntityManagerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Bean;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.web.client.RestTemplate;
 
 /**
  * Main app.
  */
-@SpringBootApplication
-@EnableJpaRepositories(basePackages = {"cz.muni.pa165.component.data.repository"})
+@SpringBootApplication()
 @EntityScan("cz.muni.pa165.component.data.model")
-@Import(RestExceptionHandler.class)
 public class App {
 
   public static void main(String[] args) {
     SpringApplication.run(App.class, args);
   }
+
+  @Bean
+  public RestTemplate restTemplate() {
+    return new RestTemplate();
+  }
+
 }
diff --git a/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java b/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java
index 42fa5b48e9bb43c5d42d09bc1a94d07a3ec3d2d0..708ad1670964f288993f326e6d850d9b8eb9b1a1 100644
--- a/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java
+++ b/component/src/main/java/cz/muni/pa165/component/data/repository/ComponentRepositoryInterface.java
@@ -1,7 +1,11 @@
 package cz.muni.pa165.component.data.repository;
 
 import cz.muni.pa165.component.data.model.CarComponent;
+import java.util.List;
+import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -9,4 +13,11 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface ComponentRepositoryInterface extends JpaRepository<CarComponent, Long> {
+
+  @Query("SELECT c FROM CarComponent c WHERE c.id = :id")
+  Optional<CarComponent> findById(@Param("id") Long id);
+
+  @Query("SELECT c FROM CarComponent c")
+  List<CarComponent> findAll();
+
 }
diff --git a/component/src/test/java/cz/muni/pa165/component/config/TestConfig.java b/component/src/test/java/cz/muni/pa165/component/config/TestConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..ec59a47401a9218a4e71b7e282d136b5a4f6cf8a
--- /dev/null
+++ b/component/src/test/java/cz/muni/pa165/component/config/TestConfig.java
@@ -0,0 +1,56 @@
+package cz.muni.pa165.component.config;
+
+import javax.sql.DataSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
+
+/**
+ * Configuration for tests.
+ */
+@Configuration
+public class TestConfig {
+
+  private DataSource dataSource;
+
+  @Autowired
+  public void setDataSource() {
+    this.dataSource = dataSource();
+  }
+
+  /**
+   * Data source for factory.
+   *
+   * @return data source
+   */
+  public DataSource dataSource() {
+    DriverManagerDataSource dataSource = new DriverManagerDataSource();
+    dataSource.setDriverClassName("org.h2.Driver");
+    dataSource.setUrl("jdbc:h2:mem:component;DB_CLOSE_DELAY=-1");
+    dataSource.setUsername("admin");
+    dataSource.setPassword("admin");
+    return dataSource;
+  }
+
+  /**
+   * Custom entity manager factory.
+   *
+   * @return factory bean
+   */
+  @Bean
+  public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
+    HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
+    vendorAdapter.setGenerateDdl(true);
+
+    LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
+    factory.setJpaVendorAdapter(vendorAdapter);
+    factory.setPackagesToScan("cz.muni.pa165.component");
+    factory.setDataSource(dataSource);
+
+    return factory;
+  }
+}
+
diff --git a/component/src/test/java/cz/muni/pa165/component/repository/ComponentRepositoryUnitTest.java b/component/src/test/java/cz/muni/pa165/component/repository/ComponentRepositoryUnitTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..5aba00f05c988ba00752f6f9f641616df1a63c26
--- /dev/null
+++ b/component/src/test/java/cz/muni/pa165/component/repository/ComponentRepositoryUnitTest.java
@@ -0,0 +1,101 @@
+package cz.muni.pa165.component.repository;
+
+import static cz.muni.pa165.component.util.ComponentTestUtil.getComponent;
+
+import cz.muni.pa165.component.data.model.CarComponent;
+import cz.muni.pa165.component.data.repository.ComponentRepositoryInterface;
+import java.math.BigDecimal;
+import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
+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;
+
+/**
+ * Unit tests for component repository.
+ */
+@RunWith(SpringRunner.class)
+@DataJpaTest
+public class ComponentRepositoryUnitTest {
+
+  @Autowired
+  private TestEntityManager entityManager;
+
+  @Autowired
+  private ComponentRepositoryInterface componentRepository;
+
+  @Test
+  public void saveTest() {
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    var savedComponent = componentRepository.save(carComponent);
+
+    Assertions.assertEquals(savedComponent, carComponent);
+    Assertions.assertEquals(entityManager.find(CarComponent.class, 1L).getId(), 1);
+  }
+
+  @Test
+  public void findByIdTest() {
+
+    Long id = 2L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    var savedComponent = componentRepository.save(carComponent);
+    var component = componentRepository.findById(savedComponent.getId()).orElseThrow();
+
+    Assertions.assertAll(
+        () -> Assertions.assertEquals(component.getId(), savedComponent.getId()),
+        () -> Assertions.assertEquals(component.getName(), savedComponent.getName()),
+        () -> Assertions.assertEquals(component.getPrice(), savedComponent.getPrice()),
+        () -> Assertions.assertEquals(component.getWeight(), savedComponent.getWeight()),
+        () -> Assertions.assertEquals(component.getManufacturer(), savedComponent.getManufacturer())
+    );
+  }
+
+  @Test
+  public void findByNonExistingIdTest() {
+    Assertions.assertThrows(Exception.class, () -> componentRepository.findById(-1L).orElseThrow());
+  }
+
+  @Test
+  public void deleteByIdTest() {
+    Long id = 3L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    var savedComponent = componentRepository.save(carComponent);
+    componentRepository.delete(savedComponent);
+
+    Assertions.assertThrows(Exception.class, () -> componentRepository
+        .findById(savedComponent.getId()).orElseThrow());
+  }
+
+  @Test
+  public void testFindAll() {
+    Long id1 = 4L;
+    Long id2 = 5L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent1 = getComponent(id1, name, one, manufacturer);
+    var carComponent2 = getComponent(id2, name, one, manufacturer);
+
+    componentRepository.save(carComponent1);
+    componentRepository.save(carComponent2);
+
+    var components = componentRepository.findAll();
+    Assertions.assertEquals(2, components.size());
+  }
+
+}
diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerIntegrationTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerIntegrationTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ec3bf26d694b868f40711ef9344e7151554ade4
--- /dev/null
+++ b/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerIntegrationTest.java
@@ -0,0 +1,145 @@
+package cz.muni.pa165.component.rest;
+
+import static cz.muni.pa165.component.util.ComponentTestUtil.getComponent;
+import static org.junit.jupiter.api.Assertions.assertAll;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.BDDMockito.given;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import cz.muni.pa165.component.data.model.CarComponent;
+import cz.muni.pa165.component.data.repository.ComponentRepositoryInterface;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Optional;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+
+@SpringBootTest
+@AutoConfigureMockMvc
+class ComponentControllerIntegrationTest {
+
+  @Autowired
+  private MockMvc mockMvc;
+
+  @MockBean
+  private ComponentRepositoryInterface componentRepositoryMock;
+
+  @Autowired
+  private ObjectMapper objectMapper;
+
+  @Test
+  void postIntegrationTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    given(componentRepositoryMock.save(any(CarComponent.class))).willReturn(carComponent);
+
+    String response = mockMvc.perform(post("/component/")
+            .content(objectMapper.writeValueAsString(carComponent))
+            .contentType(MediaType.APPLICATION_JSON_VALUE))
+        .andExpect(status().isOk())
+        .andReturn().getResponse().getContentAsString();
+
+    CarComponent componentResponse = objectMapper.readValue(response, CarComponent.class);
+    assertAll(
+        () -> assertEquals(carComponent.getId(), componentResponse.getId()),
+        () -> assertEquals(carComponent.getName(), componentResponse.getName()),
+        () -> assertEquals(carComponent.getWeight(), componentResponse.getWeight()),
+        () -> assertEquals(carComponent.getPrice(), componentResponse.getPrice()),
+        () -> assertEquals(carComponent.getManufacturer(), componentResponse.getManufacturer())
+    );
+  }
+
+  @Test
+  void deleteIntegrationTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    given(componentRepositoryMock.findById(anyLong())).willReturn(
+        Optional.of(carComponent));
+
+    String expectedResponse = "Car component with id: 1was successfully deleted";
+    String actualResponse = mockMvc.perform(delete("/component/")
+            .param("componentId", String.valueOf(id))
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk())
+        .andReturn().getResponse().getContentAsString();
+
+    Assertions.assertEquals(expectedResponse, actualResponse);
+  }
+
+  @Test
+  void getComponentByIdTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    given(componentRepositoryMock.findById(id)).willReturn(Optional.of(carComponent));
+
+    String response = mockMvc.perform(get("/component/id")
+            .param("componentId", String.valueOf(id))
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk())
+        .andReturn().getResponse().getContentAsString();
+    var componentResponse = objectMapper.readValue(response, CarComponent.class);
+
+    Assertions.assertAll(
+        () -> Assertions.assertEquals(id, componentResponse.getId()),
+        () -> Assertions.assertEquals(name, componentResponse.getName()),
+        () -> Assertions.assertEquals(one, componentResponse.getWeight()),
+        () -> Assertions.assertEquals(one, componentResponse.getPrice()),
+        () -> Assertions.assertEquals(manufacturer, componentResponse.getManufacturer())
+    );
+  }
+
+  @Test
+  void getAllComponentsTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+
+    given(componentRepositoryMock.findAll()).willReturn(List.of(carComponent));
+
+    String response = mockMvc.perform(get("/component/")
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk())
+        .andReturn().getResponse().getContentAsString();
+
+    var componentResponse = objectMapper.readValue(response, CarComponent[].class);
+    Assertions.assertAll(
+        () -> Assertions.assertEquals(id, componentResponse[0].getId()),
+        () -> Assertions.assertEquals(name, componentResponse[0].getName()),
+        () -> Assertions.assertEquals(one, componentResponse[0].getWeight()),
+        () -> Assertions.assertEquals(one, componentResponse[0].getPrice()),
+        () -> Assertions.assertEquals(manufacturer, componentResponse[0].getManufacturer())
+    );
+  }
+
+}
+
diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerUnitTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerUnitTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..3b2a20d148ba283c633fdf52570e9f16fd0736b6
--- /dev/null
+++ b/component/src/test/java/cz/muni/pa165/component/rest/ComponentControllerUnitTest.java
@@ -0,0 +1,126 @@
+package cz.muni.pa165.component.rest;
+
+import static cz.muni.pa165.component.util.ComponentTestUtil.getComponent;
+import static cz.muni.pa165.component.util.ComponentTestUtil.getComponentResponseDto;
+import static org.mockito.BDDMockito.given;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import cz.muni.pa165.common_library.dtos.CarComponentRequestDto;
+import cz.muni.pa165.common_library.dtos.CarComponentResponseDto;
+import cz.muni.pa165.component.data.model.CarComponent;
+import cz.muni.pa165.component.service.ComponentService;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.test.web.servlet.MockMvc;
+
+@WebMvcTest(ComponentController.class)
+class ComponentControllerUnitTest {
+
+  @Autowired
+  private MockMvc mockMvc;
+
+  @MockBean
+  private ComponentService componentService;
+
+  @Autowired
+  private ObjectMapper objectMapper;
+
+  @Test
+  void createCarComponentTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponent = getComponent(id, name, one, manufacturer);
+    var carComponentResponseDto = getComponentResponseDto(id, name, one, manufacturer);
+
+    given(componentService.postCarComponent(CarComponentRequestDto.builder().build()))
+        .willReturn(carComponentResponseDto);
+    mockMvc.perform(post("/component/")
+            .contentType(MediaType.APPLICATION_JSON)
+            .content(objectMapper.writeValueAsString(carComponent)))
+        .andExpect(status().isOk());
+  }
+
+  @Test
+  void nonExistingPathTest() throws Exception {
+    mockMvc.perform(post("/invalidPath"))
+        .andExpect(status().isNotFound());
+  }
+
+  @Test
+  void createComponentWithNullValuesTest() throws Exception {
+
+    CarComponent carComponent = new CarComponent();
+    CarComponentRequestDto carComponentRequestDto = new CarComponentRequestDto();
+    CarComponentResponseDto carComponentResponseDto = new CarComponentResponseDto();
+
+    given(componentService.postCarComponent(carComponentRequestDto))
+        .willReturn(carComponentResponseDto);
+    mockMvc.perform(post("/component/").contentType(MediaType.APPLICATION_JSON)
+            .content(objectMapper.writeValueAsString(carComponent)))
+        .andExpect(status().isBadRequest());
+  }
+
+  @Test
+  void deleteCarComponentTest() throws Exception {
+
+    Long id = 1L;
+
+    String expectedResponse = "Car component with id: 1was successfully deleted";
+    given(componentService.deleteById(id)).willReturn(expectedResponse);
+    String actualResponse = mockMvc.perform(delete("/component/")
+            .param("componentId", String.valueOf(id))
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk())
+        .andReturn().getResponse().getContentAsString();
+    Assertions.assertEquals(expectedResponse, actualResponse);
+  }
+
+  @Test
+  void getCarComponentTest() throws Exception {
+
+    Long id = 1L;
+    String name = "Engine";
+    BigDecimal one = BigDecimal.ONE;
+    String manufacturer = "Ferrari";
+    var carComponentResponseDto = getComponentResponseDto(id, name, one, manufacturer);
+
+    given(componentService.getCarComponentById(id)).willReturn(carComponentResponseDto);
+    mockMvc.perform(get("/component/id")
+            .param("componentId", String.valueOf(id))
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk())
+        .andExpect(jsonPath("$.id").value(id))
+        .andExpect(jsonPath("$.name").value(name))
+        .andExpect(jsonPath("$.price").value(one))
+        .andExpect(jsonPath("$.weight").value(one))
+        .andExpect(jsonPath("$.manufacturer").value(manufacturer));
+  }
+
+  @Test
+  void getAllCarComponentsTest() throws Exception {
+
+    List<CarComponentResponseDto> components = new ArrayList<>();
+
+    given(componentService.getAllCarComponents()).willReturn(components);
+    mockMvc.perform(get("/component/")
+            .contentType(MediaType.APPLICATION_JSON))
+        .andExpect(status().isOk());
+  }
+
+}
+
diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java
deleted file mode 100644
index 3c9619a4f578deb24a97e86d847c650c0938ea3a..0000000000000000000000000000000000000000
--- a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerItTest.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package cz.muni.pa165.component.rest;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import cz.muni.pa165.component.service.ComponentService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.web.servlet.MockMvc;
-
-
-@SpringBootTest
-@AutoConfigureMockMvc
-class ComponentInitControllerItTest {
-
-  @Autowired
-  private MockMvc mockMvc;
-
-  @Autowired
-  private ObjectMapper objectMapper;
-
-  @Autowired
-  ComponentService componentInitService;
-
-
-}
diff --git a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java b/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java
deleted file mode 100644
index 4586f73d2bd56cdd90c541c576fb05ec4de034e0..0000000000000000000000000000000000000000
--- a/component/src/test/java/cz/muni/pa165/component/rest/ComponentInitControllerUnitTest.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package cz.muni.pa165.component.rest;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
-import org.springframework.test.web.servlet.MockMvc;
-
-@WebMvcTest(ComponentController.class)
-class ComponentInitControllerUnitTest {
-
-  @Autowired
-  private MockMvc mockMvc;
-
-  //@MockBean
-  //private ComponentInitFacade mockComponentInitFacade;
-
-  @Autowired
-  private ObjectMapper objectMapper;
-
-
-}
diff --git a/component/src/test/java/cz/muni/pa165/component/util/ComponentTestUtil.java b/component/src/test/java/cz/muni/pa165/component/util/ComponentTestUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..d2927bde8100be7b7731bdac7463dc679de9090c
--- /dev/null
+++ b/component/src/test/java/cz/muni/pa165/component/util/ComponentTestUtil.java
@@ -0,0 +1,76 @@
+package cz.muni.pa165.component.util;
+
+import cz.muni.pa165.common_library.dtos.CarComponentRequestDto;
+import cz.muni.pa165.common_library.dtos.CarComponentResponseDto;
+import cz.muni.pa165.component.data.model.CarComponent;
+import java.math.BigDecimal;
+
+/**
+ * Helper class for creating Component objects.
+ */
+public class ComponentTestUtil {
+
+  /**
+   * Returns a CarComponent instance initialized with the given parameters.
+   *
+   * @param id the ID of the car component
+   * @param name the name of the car component
+   * @param decimal the weight and price of the car component
+   * @param manufacturer the manufacturer of the car component
+   * @return a CarComponent instance initialized with the given parameters
+   */
+  public static CarComponent getComponent(Long id,
+                                          String name,
+                                          BigDecimal decimal,
+                                          String manufacturer) {
+    return CarComponent.builder()
+        .id(id)
+        .name(name)
+        .weight(decimal)
+        .price(decimal)
+        .manufacturer(manufacturer)
+        .build();
+  }
+
+  /**
+   * Returns a CarComponentResponseDto instance initialized with the given parameters.
+   *
+   * @param id the ID of the car component
+   * @param name the name of the car component
+   * @param decimal the weight and price of the car component
+   * @param manufacturer the manufacturer of the car component
+   * @return a CarComponentResponseDto instance initialized with the given parameters
+   */
+  public static CarComponentResponseDto getComponentResponseDto(Long id,
+                                                                String name,
+                                                                BigDecimal decimal,
+                                                                String manufacturer) {
+    return CarComponentResponseDto.builder()
+        .id(id)
+        .name(name)
+        .weight(decimal)
+        .price(decimal)
+        .manufacturer(manufacturer)
+        .build();
+  }
+
+  /**
+   * Returns a CarComponentResponseDto instance initialized with the given parameters.
+   *
+   * @param name the name of the car component
+   * @param decimal the weight and price of the car component
+   * @param manufacturer the manufacturer of the car component
+   * @return a CarComponentResponseDto instance initialized with the given parameters
+   */
+  public static CarComponentRequestDto getComponentRequestDto(String name,
+                                                              BigDecimal decimal,
+                                                              String manufacturer) {
+    return CarComponentRequestDto.builder()
+        .name(name)
+        .weight(decimal)
+        .price(decimal)
+        .manufacturer(manufacturer)
+        .build();
+  }
+
+}
diff --git a/driver/src/main/java/cz/muni/pa165/driver/data/repository/DriverRepository.java b/driver/src/main/java/cz/muni/pa165/driver/data/repository/DriverRepository.java
index 6a5eb0cd0eef31040355dec815d53a3840791106..ed33361037a8a8a409581ec0ca2c4f90cbb3d480 100644
--- a/driver/src/main/java/cz/muni/pa165/driver/data/repository/DriverRepository.java
+++ b/driver/src/main/java/cz/muni/pa165/driver/data/repository/DriverRepository.java
@@ -1,7 +1,11 @@
 package cz.muni.pa165.driver.data.repository;
 
 import cz.muni.pa165.driver.data.model.Driver;
+import java.util.List;
+import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -10,4 +14,10 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface DriverRepository extends JpaRepository<Driver, Long> {
 
+  @Query("SELECT d FROM Driver d WHERE d.id = :id")
+  Optional<Driver> findById(@Param("id") Long id);
+
+  @Query("SELECT d FROM Driver d")
+  List<Driver> findAll();
+
 }
diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java
index b1bdd7be9675172e847cfbbfd19ab69e1fb066e5..3bd94a36e827c4fdb12130e00f45e6190365e382 100644
--- a/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java
+++ b/race/src/main/java/cz/muni/pa165/race/data/repository/RaceRepository.java
@@ -26,4 +26,5 @@ public interface RaceRepository extends JpaRepository<Race, Long> {
       + " JOIN r.raceInfo ri "
       + "WHERE ri.location = :location")
   List<Race> findRacesByLocation(@Param("location") Location raceLocation);
+
 }
diff --git a/race/src/main/java/cz/muni/pa165/race/data/repository/SeasonRepository.java b/race/src/main/java/cz/muni/pa165/race/data/repository/SeasonRepository.java
index 65b0c2dda424cedcb3fe5f97f9551998b12f2cae..ecea648538411110f6aadcc15ea1895520d95b73 100644
--- a/race/src/main/java/cz/muni/pa165/race/data/repository/SeasonRepository.java
+++ b/race/src/main/java/cz/muni/pa165/race/data/repository/SeasonRepository.java
@@ -1,7 +1,11 @@
 package cz.muni.pa165.race.data.repository;
 
 import cz.muni.pa165.race.data.model.Season;
+import java.util.List;
+import java.util.Optional;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -9,4 +13,11 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface SeasonRepository extends JpaRepository<Season, Long> {
+
+  @Query("SELECT s FROM Season s WHERE s.id = :id")
+  Optional<Season> findById(@Param("id") Long id);
+
+  @Query("SELECT s FROM Season s")
+  List<Season> findAll();
+
 }