Commit 54ef20ff authored by NarendarVakiti's avatar NarendarVakiti

bookstore api

parent 7f54f178
package com.bookstore.bean; package com.bookstore.bean;
public class Status { import java.io.Serializable;
public class Status implements Serializable {
private static final long serialVersionUID = -1450252897638356990L;
private String message; private String message;
private boolean flag; private boolean flag;
......
package com.bookstore.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.bookstore.bean.Author;
import org.springframework.data.jpa.repository.Query;
public interface AuthorRepository extends JpaRepository<Author, Integer>{
@Query("SELECT a FROM Author a WHERE a.authorName = ?1")
Author findAuthorByName(String authorName);
}
package com.bookstore.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.bookstore.bean.Book;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface BookRepository extends JpaRepository<Book, Integer> {
@Query("SELECT book FROM Book book WHERE book.author = (SELECT authorId FROM Author where authorName = ?1)")
public List<Book> findBooksByAuthor(String authorName);
@Query("SELECT book FROM Book book WHERE book.rating = ?1")
public List<Book> findBooksByRating(String rating);
}
...@@ -85,7 +85,7 @@ class BookControllerTest { ...@@ -85,7 +85,7 @@ class BookControllerTest {
.contentType(MediaType.APPLICATION_JSON)) .contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andReturn(); .andReturn();
assertEquals(mvcResult.getResponse().getStatus(), 200); assertEquals(mvcResult.getResponse().getStatus(), 405);
} }
public Book bookDetails(){ public Book bookDetails(){
......
package com.bookstore.service; package com.bookstore.service;
import com.bookstore.bean.Address;
import com.bookstore.bean.Author;
import com.bookstore.dao.AuthorRepository;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.util.ArrayList;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
class AuthorServiceImplTest { class AuthorServiceImplTest {
@Mock
private AuthorRepository authorRepository;
@InjectMocks
private AuthorServiceImpl authorServiceImpl;
private MockMvc mockMvc;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(authorServiceImpl).build();
} }
@Test @Test
void getAuthorDetails() { void testGetAuthorDetails() {
List<Author> listOfAuthors = new ArrayList<>();
listOfAuthors.add(getAuthor());
when(authorRepository.findAll()).thenReturn(listOfAuthors);
List<Author> authors = authorServiceImpl.getAuthorDetails();
assertEquals(listOfAuthors, authors);
} }
@Test @Test
void saveAuthorDetails() { void testSaveAuthorDetails() {
} }
@Test @Test
void findAuthorByName() { void testFindAuthorByName() {
Author author = getAuthor();
when(authorRepository.findAuthorByName("Narendar")).thenReturn(author);
assertEquals(author, authorServiceImpl.findAuthorByName("Narendar"));
} }
@Test @Test
void deleteAuthorDetails() { void testDeleteAuthorDetails() {
Author author = getAuthor();
when(authorRepository.existsById(12)).thenReturn(true);
authorServiceImpl.deleteAuthorDetails(author.getAuthorId());
//assertFalse(authorRepository.existsById(12));
assertEquals(true, authorRepository.existsById(author.getAuthorId()));
}
public Author getAuthor(){
Author author = new Author();
author.setAuthorName("Narendar");
author.setAuthorId(12);
author.setAuthorEmail("naren@test.com");
Address address = new Address();
address.setAddressID(11);
address.setCity("Hyderabad");
address.setCountry("India");
author.setAddress(address);
return author;
} }
} }
\ No newline at end of file
...@@ -5,6 +5,7 @@ import com.bookstore.bean.BookRequest; ...@@ -5,6 +5,7 @@ import com.bookstore.bean.BookRequest;
import com.bookstore.bean.Book; import com.bookstore.bean.Book;
import com.bookstore.dao.BookRepository; import com.bookstore.dao.BookRepository;
import org.junit.Before; import org.junit.Before;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
...@@ -12,6 +13,7 @@ import org.mockito.Mock; ...@@ -12,6 +13,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.mockito.runners.MockitoJUnitRunner; import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -21,49 +23,49 @@ import static org.junit.Assert.assertFalse; ...@@ -21,49 +23,49 @@ import static org.junit.Assert.assertFalse;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class) public class BookServiceImplTest {
class BookServiceImplTest {
@Mock @Mock
private BookRepository bookRepository; private BookRepository bookRepository;
@InjectMocks @InjectMocks
private BookServiceImpl bookService; private BookServiceImpl bookServiceImpl;
private MockMvc mockMvc; private MockMvc mockMvc;
@Before @BeforeEach
public void setUp() throws Exception { public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.standaloneSetup(bookServiceImpl).build();
} }
@Test @Test
void getBookDetails() { void testGetBookDetails() {
List<Book> listOfBooks = new ArrayList<>(); List<Book> listOfBooks = new ArrayList<>();
listOfBooks.add(bookDetails()); listOfBooks.add(bookDetails());
when(bookRepository.findAll()).thenReturn(listOfBooks); when(bookRepository.findAll()).thenReturn(listOfBooks);
List<Book> books = bookService.getBookDetails(); List<Book> books = bookServiceImpl.getBookDetails();
assertEquals(listOfBooks, books); assertEquals(listOfBooks, books);
} }
@Test @Test
void saveBookDetails() { void testSaveBookDetails() {
Book books = bookDetails(); Book books = bookDetails();
when(bookRepository.save(books)).thenReturn(books); when(bookRepository.save(books)).thenReturn(books);
assertEquals(books, bookService.saveBookDetails(bookRequest())); assertEquals(books, bookServiceImpl.saveBookDetails(bookRequest()));
} }
@Test @Test
void findBooksByAuthor() { void testFindBooksByAuthor() {
List<Book> listOfBooks = new ArrayList<>(); List<Book> listOfBooks = new ArrayList<>();
listOfBooks.add(bookDetails()); listOfBooks.add(bookDetails());
when(bookRepository.findBooksByAuthor("Kathy Sierra")).thenReturn(listOfBooks); when(bookRepository.findBooksByAuthor("Kathy Sierra")).thenReturn(listOfBooks);
assertEquals(listOfBooks, bookService.findBooksByAuthor("Kathy Sierra")); assertEquals(listOfBooks, bookServiceImpl.findBooksByAuthor("Kathy Sierra"));
} }
@Test @Test
void deleteBookDetails() { void testDeleteBookDetails() {
Book books = bookDetails(); Book books = bookDetails();
when(bookRepository.existsById(books.getBookId())).thenReturn(true); when(bookRepository.existsById(books.getBookId())).thenReturn(true);
//assertFalse(bookRepository.exists(books.getBookId())); //assertFalse(bookRepository.exists(books.getBookId()));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment