Answered step by step
Verified Expert Solution
Question
1 Approved Answer
I need spring boot JPA based solution to pass this test case given below - ProductServiceImplTest.java package com.stackroute.springdatajpamysql.test; import com.stackroute.springdatajpamysql.entity.Product; import com.stackroute.springdatajpamysql.repository.ProductRepo; import com.stackroute.springdatajpamysql.service.ProductServiceImpl; import
I need spring boot JPA based solution to pass this test case given below
ProductServiceImplTest.java
package com.stackroute.springdatajpamysql.test;
import com.stackroute.springdatajpamysql.entity.Product;
import com.stackroute.springdatajpamysql.repository.ProductRepo;
import com.stackroute.springdatajpamysql.service.ProductServiceImpl;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.mockito.Mockito.;
public class ProductServiceImplTest
@InjectMocks
private ProductServiceImpl productService;
@Mock
private ProductRepo productRepository;
@BeforeEach
public void init
MockitoAnnotations.openMocksthis;
@Test
public void testGetAllProducts
List productList new ArrayList;
productList.addnew ProductL "Product;
productList.addnew ProductL "Product;
whenproductRepositoryfindAllthenReturnproductList;
List result productService.getAllProducts;
verifyproductRepository timesfindAll;
assertEquals result.size;
@Test
public void testGetProductById
Long productId L;
Product product new ProductproductId "Product;
whenproductRepositoryfindByIdproductIdthenReturnOptionalofproduct;
Product result productService.getProductByIdproductId;
verifyproductRepository timesfindByIdproductId;
assertNotNullresult;
assertEqualsproduct result;
@Test
public void testSaveProduct
Product product new ProductL "Product;
whenproductRepositorysaveproductthenReturnproduct;
Product result productService.saveProductproduct;
verifyproductRepository timessaveproduct;
assertNotNullresult;
assertEqualsproduct result;
@Test
public void testUpdateProduct
Long productId L;
Product existingProduct new ProductproductId "Product;
Product updatedProduct new ProductproductId "Updated Product", ;
whenproductRepositoryfindByIdproductIdthenReturnOptionalofexistingProduct;
whenproductRepositorysaveexistingProductthenReturnupdatedProduct;
Product result productService.updateProductupdatedProduct productId;
verifyproductRepository timesfindByIdproductId;
verifyproductRepository timessaveexistingProduct;
assertNotNullresult;
assertEqualsupdatedProduct result;
@Test
public void testDeleteProduct
Long productId L;
doNothingwhenproductRepositorydeleteByIdproductId;
String result productService.deleteProductproductId;
verifyproductRepository timesdeleteByIdproductId;
assertEqualsProduct Deleted", result;
@Test
public void testGetAllProductsHavingPriceLessThan
Mocking data
double price ;
Product product new ProductL "Product;
Product product new ProductL "Product;
List productList Arrays.asListproduct product;
Mocking the repository method
whenproductRepositoryfindProductsLessThanPricepricethenReturnproductList;
Calling the service method
List result productService.getAllProductsHavingPriceLessThanprice;
Verifying the result
assertThatresultisNotNull;
assertThatresultsizeisEqualTo;
assertThatresultgetgetNameisEqualToProduct;
assertThatresultgetgetPriceisEqualTo;
assertThatresultgetgetNameisEqualToProduct;
assertThatresultgetgetPriceisEqualTo;
Verifying that the repository method was called
verifyproductRepository timesfindProductsLessThanPriceprice;
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started