Skip to content

Commit

Permalink
Merge pull request #109 from Wallet-expedition/Backend-unitTest
Browse files Browse the repository at this point in the history
Backend unit test
  • Loading branch information
Hyun-git committed Jan 30, 2022
2 parents 43e1e86 + 16bb85a commit 7504a3b
Show file tree
Hide file tree
Showing 9 changed files with 320 additions and 18 deletions.
1 change: 1 addition & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dependencies {
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
implementation 'junit:junit:4.13.1'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
annotationProcessor 'org.projectlombok:lombok'
Expand Down
9 changes: 5 additions & 4 deletions backend/src/main/java/com/modimoa/backend/domain/Product.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package com.modimoa.backend.domain;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;

@Entity
@Getter
@RequiredArgsConstructor
public class Product extends BaseTimeEntity implements Serializable {

public static final long serialVersionUID = -6184044926029805156L;
Expand Down Expand Up @@ -52,10 +54,9 @@ public class Product extends BaseTimeEntity implements Serializable {
@Column(name = "gift_price")
private Integer giftPrice;

public Product() {
}

public Product(Mart martName, String productName, Integer originalPrice, SaleCategory saleCategory) {
public Product(long productId, Mart martName, String productName, Integer originalPrice, SaleCategory saleCategory) {
this.productId = productId;
this.martName = martName;
this.productName = productName;
this.originalPrice = originalPrice;
Expand All @@ -64,7 +65,7 @@ public Product(Mart martName, String productName, Integer originalPrice, SaleCat

@Override
public String toString() {
return String.format("%d๋ฒˆ %s ํ• ์ธ: %s์—์„œ %s์„ %d์›์— ํŒ๋‹ˆ๋‹ค", productId, saleCategory.getKrname(), martName, productName, originalPrice);
return String.format("%d๋ฒˆ %s ํ• ์ธ: %s์—์„œ %s์„ %d์›์— ํŒ๋‹ˆ๋‹ค", productId, saleCategory, martName, productName, originalPrice);
}

public long getProductId() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@
public interface ProductRepository extends JpaRepository<Product, Long> {

List<Product> findByMartNameAndProductNameContaining(Mart mart, String q);


}
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ public interface UserRepository extends JpaRepository<User, Long> {

Optional<User> findByAccessToken(String token);




}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,15 @@

@Service
public class ProductService {
@Autowired
ProductRepository productRepository;
// @Autowired
// ProductRepository productRepository;

private final ProductRepository productRepository;

public ProductService(ProductRepository productRepository){
this.productRepository = productRepository;
}

// Dao๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋ฌผํ’ˆ์„ ๊ฐ€์ ธ์™€์„œ ๋ฐ˜ํ™˜ํ•˜๋Š” pageํ˜• ํ•จ์ˆ˜
public Page<Product> getAllProducts(Pageable pageable) {
return productRepository.findAll(pageable);
Expand Down
25 changes: 16 additions & 9 deletions backend/src/main/java/com/modimoa/backend/service/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
import com.modimoa.backend.errorhandling.CustomException;
import com.modimoa.backend.repository.MybagRepository;
import com.modimoa.backend.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.transaction.Transactional;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -22,29 +23,35 @@
@Service
public class UserService {

@Autowired
private UserRepository userRepository;

private final UserRepository userRepository;

@Autowired
private MybagRepository mybagRepository;

public void signUp(String userImage, String userEmail, String oauthCookie) {

public UserService(UserRepository userRepository) {this.userRepository = userRepository;
}

public String signUp(String userImage, String userEmail, String oauthCookie) {
Optional <User> user = userRepository.findByUserEmail(userEmail);
if(user.isPresent()){
throw new CustomException(MEMBER_CONFLICT_ERROR);
}else{
}else{
user.orElseGet(() ->userRepository.save(new User(userEmail,userImage,oauthCookie,"new")));
return "์ƒˆ๋กœ์šด ์œ ์ € ์ƒ์„ฑ";
}

}


public String login(String userEmail) throws NoSuchAlgorithmException {
public String login(String userEmail){

Optional <User> user = userRepository.findByUserEmail(userEmail);
user.orElseThrow(()->new CustomException(OBJECT_NOTFOUND_ERROR));

String userId=user.get().getUserEmail();
String accessToken = EncryptionUtils.encryptSHA256(userEmail+userId+"access");
LocalTime time = LocalTime.now();
String hourPlusMinute = String.valueOf(time.getHour()+ time.getMinute());
String accessToken = EncryptionUtils.encryptSHA256(userEmail+hourPlusMinute+"access");
user.get().updateTokens(accessToken);

return accessToken;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.modimoa.backend.service;

public class MyBagServiceTest {
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,75 @@
package com.modimoa.backend.service;

import com.modimoa.backend.domain.Mart;
import com.modimoa.backend.domain.Product;
import org.junit.jupiter.api.Test;
import com.modimoa.backend.domain.SaleCategory;
import com.modimoa.backend.errorhandling.CustomException;
import com.modimoa.backend.repository.ProductRepository;

import org.junit.*;

class ProductServiceTest {
import org.mockito.Mockito;
import org.springframework.data.domain.*;

}
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

import static junit.framework.TestCase.assertEquals;


public class ProductServiceTest {

@Test
public void getProductByIdTest์กด์žฌ_ํ• ๋•Œ(){
//setUp
ProductRepository repo = Mockito.mock(ProductRepository.class);
Mockito.when(repo.findById(11L))
.thenReturn(Optional.of((new Product(11L, Mart.EMART24, "productName",4000, SaleCategory.OnePlusOne))));
ProductService productService = new ProductService(repo);

//when
Optional<Product> actualProduct = productService.getProductById(11L);

//then
assertEquals(11L, actualProduct.get().getProductId());
}

@Test(expected = CustomException.class)
public void getProductByIdTest์กด์žฌ_์•ˆํ• ๋•Œ(){
//setUp
ProductRepository repo = Mockito.mock(ProductRepository.class);
Mockito.when(repo.findById(11L))
.thenReturn(Optional.empty());
ProductService productService = new ProductService(repo);

//when
Optional<Product> actualProduct = productService.getProductById(11L);

//then
assertEquals(11L, actualProduct.get().getProductId());
}


@Test
public void getAllProductTest์กด์žฌ_ํ• ๋•Œ(){
//setUp
ProductRepository repo = Mockito.mock(ProductRepository.class);
Pageable pageable = PageRequest.of(0, 15, Sort.by("productName").ascending());
List<Product> productList = new ArrayList<>();
productList.add(new Product(11L, Mart.EMART24, "productName1", 4000, SaleCategory.OnePlusOne));
productList.add(new Product(11L, Mart.CU, "productName2", 3000, SaleCategory.ThreePlusOne));
Page<Product> productListPage = new PageImpl<Product>(productList);
Mockito.when(repo.findAll(pageable))
.thenReturn(productListPage);
ProductService productService = new ProductService(repo);

//when
Page<Product> actualProduct = productService.getAllProducts(pageable);

//then
assertEquals(2, actualProduct.getTotalElements());
}

}
Loading

0 comments on commit 7504a3b

Please sign in to comment.