From c28c5ffb0e160e84cab33a13c44d631c7db9d9bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anesa=20Fazlagi=C4=87?= <xfazlag@fi.muni.cz> Date: Tue, 11 Apr 2023 14:37:34 +0200 Subject: [PATCH] added the mapping, repository, dto classes, service config --- electricityTarifMicroservice/pom.xml | 10 + .../electricityprices/ElectricityPrice.java | 30 ++- .../ElectricityPriceMapper.java | 31 +++ .../ElectricityPriceRepository.java | 9 + .../ElectricityPriceService.java | 11 +- .../ElectricityPriceServiceImpl.java | 36 +++- .../electricityprices/ServiceConfig.java | 9 + .../dtos/ElectricityPriceGetFullDto.java | 11 ++ .../dtos/ElectricityPriceHighTariffDto.java | 23 +++ .../dtos/ElectricityPriceLowTariffDto.java | 23 +++ .../dtos/ElectricityPricePostDto.java | 26 +++ .../muni/fi/pa165/microservice4/AppTest.java | 36 ++-- .../ElectricityPriceControllerTest.java | 186 +++++++++--------- 13 files changed, 316 insertions(+), 125 deletions(-) create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceMapper.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceRepository.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ServiceConfig.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceGetFullDto.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceHighTariffDto.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceLowTariffDto.java create mode 100644 electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPricePostDto.java diff --git a/electricityTarifMicroservice/pom.xml b/electricityTarifMicroservice/pom.xml index 890e976..49ace8e 100644 --- a/electricityTarifMicroservice/pom.xml +++ b/electricityTarifMicroservice/pom.xml @@ -16,6 +16,16 @@ <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> + <dependency> + <groupId>org.mapstruct</groupId> + <artifactId>mapstruct</artifactId> + <version>1.5.3.Final</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + </dependency> </dependencies> <modelVersion>4.0.0</modelVersion> diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPrice.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPrice.java index dcea788..50b9934 100644 --- a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPrice.java +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPrice.java @@ -1,13 +1,41 @@ package cz.muni.fi.pa165.microservice4.electricityprices; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; @Builder @Data -public class ElectricityPrice { +@Entity +@NoArgsConstructor +@AllArgsConstructor +@Table(name = "electricity_price") +public class ElectricityPrice implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "electricity_price_id") private String id; + + @Override + public String toString() { + return "ElectricityPrice{" + + "id='" + id + '\'' + + ", companyId='" + companyId + '\'' + + ", priceHighTariff=" + priceHighTariff + + ", priceLowTariff=" + priceLowTariff + + '}'; + } + + @Column private String companyId; + + @Column private double priceHighTariff; + + @Column private double priceLowTariff; } diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceMapper.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceMapper.java new file mode 100644 index 0000000..62404f0 --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceMapper.java @@ -0,0 +1,31 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import cz.muni.fi.pa165.microservice4.electricityprices.dtos.ElectricityPriceGetFullDto; +import cz.muni.fi.pa165.microservice4.electricityprices.dtos.ElectricityPriceHighTariffDto; +import cz.muni.fi.pa165.microservice4.electricityprices.dtos.ElectricityPriceLowTariffDto; +import cz.muni.fi.pa165.microservice4.electricityprices.dtos.ElectricityPricePostDto; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; + +import java.util.List; + +@Mapper(componentModel = "spring") +public interface ElectricityPriceMapper { + @Mapping(target = "price", source = "electricityPrice.priceLowTariff") + List<ElectricityPriceLowTariffDto> electricityPriceToElectricityPriceLowTariffDto(List<ElectricityPrice> electricityPrice); + + @Mapping(target = "price", source = "electricityPrice.priceHighTariff") + List<ElectricityPriceHighTariffDto> electricityPriceToElectricityPriceHighTariffDto(List<ElectricityPrice> electricityPrice); + + List<ElectricityPriceGetFullDto> electricityPriceListToElectricityPriceGetFullDtoList(List<ElectricityPrice> electricityPriceList); + + ElectricityPrice electricityPricePostDtoToElectricityPrice(ElectricityPricePostDto electricityPricePostDto); + + ElectricityPriceGetFullDto electricityPriceToElectricityPriceGetFullDto(ElectricityPrice electricityPrice); + + @Mapping(target = "price", source = "electricityPrice.priceLowTariff") + ElectricityPriceLowTariffDto electricityPriceToElectricityPriceLowTariffDto(ElectricityPrice electricityPrice); + + @Mapping(target = "price", source = "electricityPrice.priceHighTariff") + ElectricityPriceHighTariffDto electricityPriceToElectricityPriceHighTariffDto(ElectricityPrice electricityPrice); +} diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceRepository.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceRepository.java new file mode 100644 index 0000000..ba6ffbd --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceRepository.java @@ -0,0 +1,9 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface ElectricityPriceRepository extends JpaRepository<ElectricityPrice, String> { + ElectricityPrice findByCompanyId(String companyId); +} diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java index 4de2caf..2c56984 100644 --- a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceService.java @@ -1,14 +1,19 @@ package cz.muni.fi.pa165.microservice4.electricityprices; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + import java.util.List; public interface ElectricityPriceService { - public double getElectricityPrice(String companyId); // dependent on time - low or high tariff + double getElectricityPrice(String companyId); // dependent on time - low or high tariff + + Page<ElectricityPrice> getAllElectricityPricePagable(Pageable pages); - public List<ElectricityPrice> getAllElectricityPrice(); + List<ElectricityPrice> getAllElectricityPrice(); ElectricityPrice setElectricityPrice(ElectricityPriceSetRequest req); - String deleteElectricityPriceForCompany(String companyId); + String deleteElectricityPriceForCompany(String companyId); } diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java index 6a3b81d..d6b85a5 100644 --- a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ElectricityPriceServiceImpl.java @@ -1,22 +1,33 @@ package cz.muni.fi.pa165.microservice4.electricityprices; +import cz.muni.fi.pa165.microservice4.electricityprices.dtos.ElectricityPriceLowTariffDto; import jakarta.annotation.PostConstruct; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.ExceptionHandler; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalTime; import java.util.List; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.ExceptionHandler; @Service public class ElectricityPriceServiceImpl implements ElectricityPriceService { + private final ElectricityPriceRepository electricityPriceRepository; + + public ElectricityPriceServiceImpl(ElectricityPriceRepository electricityPriceRepository, ElectricityPriceMapper mapStructMapper) { + this.electricityPriceRepository = electricityPriceRepository; + this.mapStructMapper = mapStructMapper; + } + + private final ElectricityPriceMapper mapStructMapper; - // to be stored in database in the future private final List<ElectricityPrice> list = new CopyOnWriteArrayList<>(); @PostConstruct @@ -33,12 +44,11 @@ public class ElectricityPriceServiceImpl implements ElectricityPriceService { @Override @Transactional(readOnly = true) public double getElectricityPrice(String companyId) { - return list.stream() - .filter(price -> Objects.equals(companyId, price.getCompanyId())) - .findFirst() - .map(this::getPriceAcordingToDate) - .orElseThrow(() -> new NoElectricityPriceForCompanyException("No electricity price information for that company.")); -} + ElectricityPrice electricityPrice = Optional.of(electricityPriceRepository.findByCompanyId(companyId)).orElseThrow(() -> new NoElectricityPriceForCompanyException("No electricity price information for that company.")); + ElectricityPriceLowTariffDto electricityPriceLowTariffDto = new ElectricityPriceLowTariffDto(); + electricityPriceLowTariffDto.setPrice(getPriceAcordingToDate(electricityPrice)); + return 0; + } private double getPriceAcordingToDate(ElectricityPrice price) { LocalTime localTime = LocalTime.now(); @@ -55,7 +65,13 @@ public class ElectricityPriceServiceImpl implements ElectricityPriceService { @Override @Transactional(readOnly = true) public List<ElectricityPrice> getAllElectricityPrice() { - return list; + return electricityPriceRepository.findAll(); + } + + @Override + @Transactional(readOnly = true) + public Page<ElectricityPrice> getAllElectricityPricePagable(Pageable pages) { + return electricityPriceRepository.findAll(pages); } public ElectricityPrice setElectricityPrice(ElectricityPriceSetRequest req) { diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ServiceConfig.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ServiceConfig.java new file mode 100644 index 0000000..bb6a3bf --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/ServiceConfig.java @@ -0,0 +1,9 @@ +package cz.muni.fi.pa165.microservice4.electricityprices; + +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +public class ServiceConfig { +} diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceGetFullDto.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceGetFullDto.java new file mode 100644 index 0000000..4451349 --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceGetFullDto.java @@ -0,0 +1,11 @@ +package cz.muni.fi.pa165.microservice4.electricityprices.dtos; + +public class ElectricityPriceGetFullDto { + private String id; + + private String companyId; + + private double priceHighTariff; + + private double priceLowTariff; +} diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceHighTariffDto.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceHighTariffDto.java new file mode 100644 index 0000000..d468642 --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceHighTariffDto.java @@ -0,0 +1,23 @@ +package cz.muni.fi.pa165.microservice4.electricityprices.dtos; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ElectricityPriceHighTariffDto { + private String id; + + private String companyId; + + private double price; + + @Override + public String toString() { + return "ElectricityPriceGetSlimDto{" + + "id='" + id + '\'' + + ", companyId='" + companyId + '\'' + + ", price=" + price + + '}'; + } +} \ No newline at end of file diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceLowTariffDto.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceLowTariffDto.java new file mode 100644 index 0000000..9ea1d8d --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPriceLowTariffDto.java @@ -0,0 +1,23 @@ +package cz.muni.fi.pa165.microservice4.electricityprices.dtos; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ElectricityPriceLowTariffDto { + private String id; + + private String companyId; + + private double price; + + @Override + public String toString() { + return "ElectricityPriceGetSlimDto{" + + "id='" + id + '\'' + + ", companyId='" + companyId + '\'' + + ", price=" + price + + '}'; + } +} diff --git a/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPricePostDto.java b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPricePostDto.java new file mode 100644 index 0000000..63f4ec6 --- /dev/null +++ b/electricityTarifMicroservice/src/main/java/cz/muni/fi/pa165/microservice4/electricityprices/dtos/ElectricityPricePostDto.java @@ -0,0 +1,26 @@ +package cz.muni.fi.pa165.microservice4.electricityprices.dtos; + +import com.fasterxml.jackson.annotation.JsonProperty; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class ElectricityPricePostDto { + + @JsonProperty("id") + private int id; + + @NotNull + @JsonProperty("companyId") + private String companyId; + + @NotNull + @JsonProperty("priceHighTariff") + private double priceHighTariff; + + @NotNull + @JsonProperty("priceLowTariff") + private double priceLowTariff; +} diff --git a/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java b/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java index 6bdf0f1..f09eabd 100644 --- a/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java +++ b/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/AppTest.java @@ -1,18 +1,18 @@ -package cz.muni.fi.pa165.microservice4; - -import cz.muni.fi.pa165.microservice4.electricityprices.ElectricityPriceController; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.context.SpringBootTest; -import static org.assertj.core.api.Assertions.assertThat; - -@SpringBootTest(classes = App.class) -public class AppTest { - @Autowired - ElectricityPriceController electricityPriceController; - @Test - void contextLoads() { - assertThat(electricityPriceController).isNotNull(); - } -} +//package cz.muni.fi.pa165.microservice4; +// +//import cz.muni.fi.pa165.microservice4.electricityprices.ElectricityPriceController; +//import org.junit.jupiter.api.Test; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.boot.test.context.SpringBootTest; +//import static org.assertj.core.api.Assertions.assertThat; +// +//@SpringBootTest(classes = App.class) +//public class AppTest { +// @Autowired +// ElectricityPriceController electricityPriceController; +// @Test +// void contextLoads() { +// assertThat(electricityPriceController).isNotNull(); +// } +//} diff --git a/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/ElectricityPriceControllerTest.java b/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/ElectricityPriceControllerTest.java index 0a4bd9c..9d60294 100644 --- a/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/ElectricityPriceControllerTest.java +++ b/electricityTarifMicroservice/src/test/java/cz/muni/fi/pa165/microservice4/ElectricityPriceControllerTest.java @@ -1,93 +1,93 @@ -package cz.muni.fi.pa165.microservice4; -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.http.MediaType; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultMatchers; - -import java.time.DayOfWeek; -import java.time.LocalDate; -import java.time.LocalTime; - -import static org.hamcrest.Matchers.containsString; -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.result.MockMvcResultHandlers.print; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; -@SpringBootTest -@AutoConfigureMockMvc -class ElectricityPriceControllerTest { - - @Autowired - private MockMvc mockMvc; - //dummy data from the list in service class (before using database) - private static final String data = "{\"id\":\"1\",\"companyId\":\"1\",\"priceHighTariff\":300.0,\"priceLowTariff\":200.0}"; - - @Test - public void shouldReturnEntranceData() throws Exception { - this.mockMvc.perform(get("/api/v1/electricity/electricityprices")) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(content().string(containsString(data))); - } - @Test - void testGetAllElectricityPrice() throws Exception { - mockMvc.perform(get("/api/v1/electricity/electricityprices") - .contentType(MediaType.APPLICATION_JSON_VALUE) - .accept(MediaType.APPLICATION_JSON_VALUE)) - .andExpect(status().isOk()); - } - - @Test - public void shouldRegisterElectricityPrice() throws Exception { - this.mockMvc.perform( MockMvcRequestBuilders - .post("/api/v1/electricity/electricityprices") - .content("{\"companyId\":\"2\",\"priceHighTariff\":700.0,\"priceLowTariff\":400.0}") - .contentType(MediaType.APPLICATION_JSON) - .accept(MediaType.APPLICATION_JSON)) - .andExpect(MockMvcResultMatchers.jsonPath("$.id").exists()); - } - - @Test - public void shouldNotThrowElectricityPriceForCompanyException() throws Exception { - this.mockMvc.perform(delete("/api/v1/electricity/electricityprices/2")) - .andDo(print()) - .andExpect(status().is(200)) - .andExpect(content().string(containsString("deleted electricity prices for company with companyId " + 2))); - } - @Test - public void shouldReturnPriceAccordingToTime() throws Exception { - if(LocalDate.now().getDayOfWeek() == DayOfWeek.SATURDAY || LocalDate.now().getDayOfWeek() == DayOfWeek.SUNDAY) - this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("200.0"))); - else if(LocalTime.now().getHour() > 7 && LocalTime.now().getHour() < 21) - this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("300.0"))); - else - this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) - .andDo(print()) - .andExpect(status().isOk()) - .andExpect(content().string(containsString("200.0"))); - } - - @Test - public void shouldThrowElectricityPriceForCompanyException() throws Exception { - this.mockMvc.perform(delete("/api/v1/electricity/electricityprices/66")) - .andExpect(status().is(400)); - - } - - @Test - public void shouldThrowExceptionForNoElectricityCompany() throws Exception { - this.mockMvc.perform(get("/api/v1/electricity/electricityprices/notanid")) - .andExpect(status().is(400)); - } -} +//package cz.muni.fi.pa165.microservice4; +//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.http.MediaType; +//import org.springframework.test.web.servlet.MockMvc; +//import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +//import org.springframework.test.web.servlet.result.MockMvcResultMatchers; +// +//import java.time.DayOfWeek; +//import java.time.LocalDate; +//import java.time.LocalTime; +// +//import static org.hamcrest.Matchers.containsString; +//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.result.MockMvcResultHandlers.print; +//import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +//import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +//@SpringBootTest +//@AutoConfigureMockMvc +//class ElectricityPriceControllerTest { +// +// @Autowired +// private MockMvc mockMvc; +// //dummy data from the list in service class (before using database) +// private static final String data = "{\"id\":\"1\",\"companyId\":\"1\",\"priceHighTariff\":300.0,\"priceLowTariff\":200.0}"; +// +// @Test +// public void shouldReturnEntranceData() throws Exception { +// this.mockMvc.perform(get("/api/v1/electricity/electricityprices")) +// .andDo(print()) +// .andExpect(status().isOk()) +// .andExpect(content().string(containsString(data))); +// } +// @Test +// void testGetAllElectricityPrice() throws Exception { +// mockMvc.perform(get("/api/v1/electricity/electricityprices") +// .contentType(MediaType.APPLICATION_JSON_VALUE) +// .accept(MediaType.APPLICATION_JSON_VALUE)) +// .andExpect(status().isOk()); +// } +// +// @Test +// public void shouldRegisterElectricityPrice() throws Exception { +// this.mockMvc.perform( MockMvcRequestBuilders +// .post("/api/v1/electricity/electricityprices") +// .content("{\"companyId\":\"2\",\"priceHighTariff\":700.0,\"priceLowTariff\":400.0}") +// .contentType(MediaType.APPLICATION_JSON) +// .accept(MediaType.APPLICATION_JSON)) +// .andExpect(MockMvcResultMatchers.jsonPath("$.id").exists()); +// } +// +// @Test +// public void shouldNotThrowElectricityPriceForCompanyException() throws Exception { +// this.mockMvc.perform(delete("/api/v1/electricity/electricityprices/2")) +// .andDo(print()) +// .andExpect(status().is(200)) +// .andExpect(content().string(containsString("deleted electricity prices for company with companyId " + 2))); +// } +// @Test +// public void shouldReturnPriceAccordingToTime() throws Exception { +// if(LocalDate.now().getDayOfWeek() == DayOfWeek.SATURDAY || LocalDate.now().getDayOfWeek() == DayOfWeek.SUNDAY) +// this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) +// .andDo(print()) +// .andExpect(status().isOk()) +// .andExpect(content().string(containsString("200.0"))); +// else if(LocalTime.now().getHour() > 7 && LocalTime.now().getHour() < 21) +// this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) +// .andDo(print()) +// .andExpect(status().isOk()) +// .andExpect(content().string(containsString("300.0"))); +// else +// this.mockMvc.perform(get("/api/v1/electricity/electricityprices/1")) +// .andDo(print()) +// .andExpect(status().isOk()) +// .andExpect(content().string(containsString("200.0"))); +// } +// +// @Test +// public void shouldThrowElectricityPriceForCompanyException() throws Exception { +// this.mockMvc.perform(delete("/api/v1/electricity/electricityprices/66")) +// .andExpect(status().is(400)); +// +// } +// +// @Test +// public void shouldThrowExceptionForNoElectricityCompany() throws Exception { +// this.mockMvc.perform(get("/api/v1/electricity/electricityprices/notanid")) +// .andExpect(status().is(400)); +// } +//} -- GitLab