Skip to content

Commit 09d291b

Browse files
Identity Field Pattern
1 parent c9770e7 commit 09d291b

File tree

11 files changed

+121
-40
lines changed

11 files changed

+121
-40
lines changed

Identity_Field/pom.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,29 @@
8181
<artifactId>spring-data-jpa</artifactId>
8282
<scope>test</scope>
8383
</dependency>
84+
<dependency>
85+
<groupId>org.springframework.data</groupId>
86+
<artifactId>spring-data-jpa</artifactId>
87+
<scope>test</scope>
88+
</dependency>
89+
<dependency>
90+
<groupId>org.springframework</groupId>
91+
<artifactId>spring-context</artifactId>
92+
</dependency>
93+
<dependency>
94+
<groupId>org.springframework</groupId>
95+
<artifactId>spring-web</artifactId>
96+
</dependency>
97+
<dependency>
98+
<groupId>org.mockito</groupId>
99+
<artifactId>mockito-core</artifactId>
100+
<scope>test</scope>
101+
</dependency>
102+
<dependency>
103+
<groupId>org.mockito</groupId>
104+
<artifactId>mockito-core</artifactId>
105+
<scope>test</scope>
106+
</dependency>
84107
</dependencies>
85108

86109
</project>
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.iluwater.fieild.Controller;
2+
import com.iluwater.fieild.Model.*;
3+
4+
import com.iluwater.fieild.Model.Book;
5+
import com.iluwater.fieild.Services.BookService;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.web.bind.annotation.*;
8+
9+
@RestController
10+
@RequestMapping("/books")
11+
public class BookController {
12+
private final BookService bookService;
13+
14+
@Autowired
15+
public BookController(BookService bookService) {
16+
this.bookService = bookService;
17+
}
18+
19+
// Create a new book
20+
@PostMapping
21+
public Book createBook(@RequestBody String title, String Author) {
22+
return bookService.createBook(title,Author);
23+
}
24+
25+
// Get a book by ID
26+
@GetMapping("/{id}")
27+
public Book getBook(@PathVariable Long id) {
28+
return bookService.getBookById(id);
29+
}
30+
31+
}

Identity_Field/src/main/java/com.iluwater.fieild/Book.java renamed to Identity_Field/src/main/java/com/iluwater/fieild/Model/Book.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* THE SOFTWARE.
2424
*/
2525

26-
package com.iluwater.fieild;
26+
package com.iluwater.fieild.Model;
2727
import lombok.Getter;
2828
import lombok.Setter;
2929
import javax.persistence.Entity;

Identity_Field/src/main/java/com.iluwater.fieild/Client.java renamed to Identity_Field/src/main/java/com/iluwater/fieild/Model/Client.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2323
* THE SOFTWARE.
2424
*/
25-
package com.iluwater.fieild;
25+
package com.iluwater.fieild.Model;
2626
import java.util.regex.Pattern;
27+
2728
import lombok.Getter;
2829
import lombok.Setter;
2930
import javax.persistence.Entity;

Identity_Field/src/main/java/com.iluwater.fieild/DomainObject.java renamed to Identity_Field/src/main/java/com/iluwater/fieild/Model/DomainObject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2323
* THE SOFTWARE.
2424
*/
25-
package com.iluwater.fieild;
25+
package com.iluwater.fieild.Model;
2626
/*
2727
* The DomainObject class provides a base for domain entities
2828
* that require unique identification within the application.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.iluwater.fieild.Services;
2+
import com.iluwater.fieild.Model.Book;
3+
import org.springframework.stereotype.Repository;
4+
import javax.persistence.EntityManager;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.Objects;
8+
9+
@Repository
10+
public class BookRepository {
11+
private EntityManager entityManager;
12+
13+
public Book createBook(String title,String author) {
14+
Book book = new Book(title, author);
15+
entityManager.persist(book);
16+
return book;
17+
}
18+
public Book getBookById(Long id) {
19+
return entityManager.find(Book.class, id);
20+
}
21+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.iluwater.fieild.Services;
2+
import com.iluwater.fieild.Model.*;
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.stereotype.Service;
5+
import java.util.Objects;
6+
7+
@Service
8+
public class BookService {
9+
10+
private final BookRepository bookRepository;
11+
12+
@Autowired
13+
public BookService(BookRepository bookRepository) {
14+
this.bookRepository = bookRepository;
15+
}
16+
public Book createBook(String title,String author) {
17+
return bookRepository.createBook(title,author);
18+
}
19+
public Book getBookById(Long id) {
20+
return bookRepository.getBookById(id);
21+
}
22+
}

Identity_Field/src/test/java/com/iluwater/fieild/BookRepository.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

Identity_Field/src/test/java/com/iluwater/fieild/BookTest.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,41 +25,48 @@
2525

2626
package com.iluwater.fieild;
2727

28+
import com.iluwater.fieild.Controller.BookController;
29+
import com.iluwater.fieild.Model.Book;
30+
import com.iluwater.fieild.Services.BookRepository;
31+
import com.iluwater.fieild.Services.BookService;
2832
import org.junit.jupiter.api.Test;
33+
import org.mockito.Mock;
2934

3035
import static org.junit.jupiter.api.Assertions.*;
3136

3237
class BookTest {
33-
BookRepository bookRepository;
38+
@Mock
39+
private BookService bookService;
40+
BookController bookController = new BookController(bookService);
3441
@Test
3542
void checkIdNotNull()
3643
{
37-
Book book = bookRepository.createBook("Design patterns","someone");
44+
Book book = bookController.createBook("Design patterns","someone");
3845
assertNotNull(book.getId());
3946
}
4047
@Test
4148
void checkTwoIdsNotEqual()
4249
{
43-
Book book = bookRepository.createBook("Design patterns","someone");
44-
Book book2 = bookRepository.createBook("Head first","someone");
50+
Book book = bookController.createBook("Design patterns","someone");
51+
Book book2 = bookController.createBook("Head first","someone");
4552
assertNotEquals(book.getId(),book2.getId());
4653
}
4754
@Test
4855
void checkTitleNotNull()
4956
{
50-
Book book = bookRepository.createBook("Design patterns","someone");
57+
Book book = bookController.createBook("Design patterns","someone");
5158
assertNotNull(book.getTitle());
5259
}
5360
@Test
5461
void checkAuthorNotNull()
5562
{
56-
Book book = bookRepository.createBook("Design patterns","someone");
63+
Book book = bookController.createBook("Design patterns","someone");
5764
assertNotNull(book.getAuthor());
5865
}
5966
void checkSearch()
6067
{
61-
Book book = bookRepository.createBook("Design patterns","someone");
62-
assertNotNull(bookRepository.getBookById(book.getId()));
68+
Book book = bookController.createBook("Design patterns","someone");
69+
assertNotNull(bookController.getBook(book.getId()));
6370

6471
}
6572

Identity_Field/src/test/java/com/iluwater/fieild/BookTestApp.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
package com.iluwater.fieild;
22

3-
import javax.persistence.Persistence;
4-
import javax.persistence.EntityManagerFactory;
5-
import javax.persistence.EntityManager;
3+
import com.iluwater.fieild.Services.BookRepository;
4+
import com.iluwater.fieild.Services.BookService;
5+
import org.mockito.Mock;
66

77
public class BookTestApp {
88
private BookRepository bookRepository;
99
public static void main(String... args) {
1010

11-
BookTest bt=new BookTest();
11+
BookTest bt=new BookTest();
1212
bt.checkAuthorNotNull();
1313
bt.checkIdNotNull();
1414
bt.checkTitleNotNull();

0 commit comments

Comments
 (0)