diff --git a/pom.xml b/pom.xml
index 541b54d..0a71bdb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,6 +10,60 @@
1.8
1.8
+ 5.2.1.RELEASE
+ 5.5.2
+
+
+ org.springframework
+ spring-context
+ ${spring.version}
+
+
+
+ javax.annotation
+ javax.annotation-api
+ 1.3.2
+
+
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+ test
+
+
+
+
+ org.assertj
+ assertj-core
+ 3.22.0
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ 2.1.1.RELEASE
+ test
+
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ ${junit.jupiter.version}
+ test
+
+
+
+ org.springframework.boot
+ spring-boot-autoconfigure
+ 2.1.1.RELEASE
+ compile
+
+
+
+
diff --git a/src/main/java/com/epam/edu/spring/core/template/service/ItemService.java b/src/main/java/com/epam/edu/spring/core/template/ItemService.java
similarity index 75%
rename from src/main/java/com/epam/edu/spring/core/template/service/ItemService.java
rename to src/main/java/com/epam/edu/spring/core/template/ItemService.java
index fb664a0..2db48be 100644
--- a/src/main/java/com/epam/edu/spring/core/template/service/ItemService.java
+++ b/src/main/java/com/epam/edu/spring/core/template/ItemService.java
@@ -1,4 +1,4 @@
-package com.epam.edu.spring.core.template.service;
+package com.epam.edu.spring.core.template;
import com.epam.edu.spring.core.template.entity.Item;
diff --git a/src/main/java/com/epam/edu/spring/core/template/SimpleItemService.java b/src/main/java/com/epam/edu/spring/core/template/SimpleItemService.java
new file mode 100644
index 0000000..2df67d6
--- /dev/null
+++ b/src/main/java/com/epam/edu/spring/core/template/SimpleItemService.java
@@ -0,0 +1,43 @@
+package com.epam.edu.spring.core.template;
+
+import com.epam.edu.spring.core.template.entity.Item;
+import com.epam.edu.spring.core.template.repository.ItemRepository;
+import com.epam.edu.spring.core.template.validator.ItemValidator;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class SimpleItemService implements ItemService {
+
+ private ItemRepository itemRepository;
+ private ItemValidator itemValidator;
+ @Autowired
+ public SimpleItemService(ItemRepository itemRepository, ItemValidator itemValidator) {
+ this.itemRepository = itemRepository;
+ this.itemValidator = itemValidator;
+ }
+
+
+ public void setItemValidator(ItemValidator itemValidator) {
+ this.itemValidator = itemValidator;
+ }
+
+ public SimpleItemService(ItemRepository itemRepository) {
+ this.itemRepository = itemRepository;
+ }
+
+ public void setItemRepository(ItemRepository itemRepository) {
+ this.itemRepository = itemRepository;
+ }
+
+ @Override
+ public Item getById(long id) {
+ return itemRepository.getById(id);
+ }
+
+ @Override
+ public boolean createItem(Item item) {
+ if(itemValidator.isItemValid(item)) {
+ return itemRepository.createItem(item);
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/com/epam/edu/spring/core/template/SpringCoreTemplate.java b/src/main/java/com/epam/edu/spring/core/template/SpringCoreTemplate.java
index ea1a0a1..30d593c 100644
--- a/src/main/java/com/epam/edu/spring/core/template/SpringCoreTemplate.java
+++ b/src/main/java/com/epam/edu/spring/core/template/SpringCoreTemplate.java
@@ -1,9 +1,28 @@
package com.epam.edu.spring.core.template;
+import com.epam.edu.spring.core.template.configuration.InitializerConfiguration;
+import com.epam.edu.spring.core.template.configuration.MainConfiguration;
+import com.epam.edu.spring.core.template.entity.Item;
+import com.epam.edu.spring.core.template.factory.ColorFactory;
+import com.epam.edu.spring.core.template.validator.SimpleItemValidator;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
public class SpringCoreTemplate {
- public static void main(String[] args) {
+ public static void main(String[] args) {
+ ApplicationContext context = new AnnotationConfigApplicationContext(MainConfiguration.class);
+
+ ColorFactory colorFactory = context.getBean(ColorFactory.class);
+ System.out.println(colorFactory.getColor());
+ SimpleItemService simpleItemService = context.getBean(SimpleItemService.class);
+ simpleItemService.createItem(new Item(1, "itemOne", 22, colorFactory.getColor()));
+ System.out.println(simpleItemService.getById(1));
+
+ for (String beanName : context.getBeanDefinitionNames()) {
+ System.out.println(beanName);
+ }
}
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/configuration/InitializerConfiguration.java b/src/main/java/com/epam/edu/spring/core/template/configuration/InitializerConfiguration.java
index 444cc01..aeef530 100644
--- a/src/main/java/com/epam/edu/spring/core/template/configuration/InitializerConfiguration.java
+++ b/src/main/java/com/epam/edu/spring/core/template/configuration/InitializerConfiguration.java
@@ -1,4 +1,19 @@
package com.epam.edu.spring.core.template.configuration;
+import com.epam.edu.spring.core.template.factory.ColorFactory;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.context.annotation.*;
+
+
+
+@ComponentScan
public class InitializerConfiguration {
+
+ @Bean
+ @Lazy
+ @Scope(BeanDefinition.SCOPE_PROTOTYPE)
+ public ColorFactory colorFactory(){
+ return new ColorFactory();
+ }
+
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/configuration/MainConfiguration.java b/src/main/java/com/epam/edu/spring/core/template/configuration/MainConfiguration.java
index f1b7446..4be49c9 100644
--- a/src/main/java/com/epam/edu/spring/core/template/configuration/MainConfiguration.java
+++ b/src/main/java/com/epam/edu/spring/core/template/configuration/MainConfiguration.java
@@ -1,4 +1,8 @@
package com.epam.edu.spring.core.template.configuration;
+import org.springframework.context.annotation.Import;
+
+@Import({RepositoryConfiguration.class, InitializerConfiguration.class})
public class MainConfiguration {
+
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/configuration/RepositoryConfiguration.java b/src/main/java/com/epam/edu/spring/core/template/configuration/RepositoryConfiguration.java
index 40fb52c..d03b7a7 100644
--- a/src/main/java/com/epam/edu/spring/core/template/configuration/RepositoryConfiguration.java
+++ b/src/main/java/com/epam/edu/spring/core/template/configuration/RepositoryConfiguration.java
@@ -1,4 +1,44 @@
package com.epam.edu.spring.core.template.configuration;
+
+import com.epam.edu.spring.core.template.repository.ArrayListItemRepository;
+import com.epam.edu.spring.core.template.repository.ItemRepository;
+import com.epam.edu.spring.core.template.repository.LinkedListItemRepository;
+import com.epam.edu.spring.core.template.ItemService;
+import com.epam.edu.spring.core.template.SimpleItemService;
+import com.epam.edu.spring.core.template.validator.ItemValidator;
+import com.epam.edu.spring.core.template.validator.SimpleItemValidator;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+
+@Configuration
+@PropertySource("classpath:application.properties")
public class RepositoryConfiguration {
+
+ @Value("${item.repository.implementation}")
+ String implementation;
+
+ @Bean
+ public ItemRepository itemRepository() {
+ return implementation.equals("array") ? arrayListItemRepository() : linkedListItemRepository();
+ }
+ @Bean
+ public ArrayListItemRepository arrayListItemRepository() {
+ return new ArrayListItemRepository();
+}
+ @Bean
+ public LinkedListItemRepository linkedListItemRepository() {
+ return new LinkedListItemRepository();
+}
+ @Bean
+ public ItemService itemService() {
+ return new SimpleItemService(itemRepository(), itemValidator());
+ }
+ @Bean
+ public ItemValidator itemValidator() {
+ return new SimpleItemValidator();
+ }
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/entity/Color.java b/src/main/java/com/epam/edu/spring/core/template/entity/Color.java
index f5fe91d..9251fa3 100644
--- a/src/main/java/com/epam/edu/spring/core/template/entity/Color.java
+++ b/src/main/java/com/epam/edu/spring/core/template/entity/Color.java
@@ -1,5 +1,6 @@
package com.epam.edu.spring.core.template.entity;
public enum Color {
+ YELLOW, BLUE, RED, ORANGE, WHITE, BLACK
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/entity/Item.java b/src/main/java/com/epam/edu/spring/core/template/entity/Item.java
index d07b653..246b5f0 100644
--- a/src/main/java/com/epam/edu/spring/core/template/entity/Item.java
+++ b/src/main/java/com/epam/edu/spring/core/template/entity/Item.java
@@ -45,4 +45,14 @@ public Color getColor() {
public void setColor(Color color) {
this.color = color;
}
+
+ @Override
+ public String toString() {
+ return "Item{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ ", price=" + price +
+ ", color=" + color +
+ '}';
+ }
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/factory/ColorFactory.java b/src/main/java/com/epam/edu/spring/core/template/factory/ColorFactory.java
new file mode 100644
index 0000000..351f4c4
--- /dev/null
+++ b/src/main/java/com/epam/edu/spring/core/template/factory/ColorFactory.java
@@ -0,0 +1,30 @@
+package com.epam.edu.spring.core.template.factory;
+
+import com.epam.edu.spring.core.template.entity.Color;
+import org.springframework.beans.factory.FactoryBean;
+
+import java.util.Random;
+
+
+public class ColorFactory implements FactoryBean {
+
+ @Override
+ public Color getObject() {
+ Color[] colors = Color.values();
+ return colors[new Random().nextInt(colors.length)];
+ }
+
+ @Override
+ public Class> getObjectType() {
+ return Color.class;
+ }
+
+ public Color getColor() {
+ return getObject();
+ }
+
+ @Override
+ public boolean isSingleton() {
+ return false;
+ }
+}
diff --git a/src/main/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepository.java b/src/main/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepository.java
index edcb085..cf4e200 100644
--- a/src/main/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepository.java
+++ b/src/main/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepository.java
@@ -1,28 +1,52 @@
package com.epam.edu.spring.core.template.repository;
import com.epam.edu.spring.core.template.entity.Item;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Repository;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
/**
* Репозиторий, основанный на классе ArrayList.
* initialSequence должен браться из application.properties
*/
+@Repository
public class ArrayListItemRepository extends AbstractRepository- implements ItemRepository {
+
@Override
public Item getById(long id) {
+ if(!holder.isEmpty()) {
+ for(Item item : holder) {
+ if(item.getId() == id) {
+ return item;
+ }
+ }
+ }
return null;
}
@Override
public boolean createItem(Item item) {
- return false;
- }
+ if(!(holder.isEmpty())) {
+ for (Item el : holder) {
+ if (el.getId() == item.getId()) {
+ return false;
+ }
+ }
+ }
+ holder.add(item);
+ return true;
+ }
+
+ @Value("${initial.sequence}")
void setInitialSequence(int val) {
- //TODO
+ initialSequence = val;
}
-
+ @PostConstruct
void setHolder() {
- //TODO
+ this.holder = new ArrayList<>();
}
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepository.java b/src/main/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepository.java
index aa000f8..9e8ab25 100644
--- a/src/main/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepository.java
+++ b/src/main/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepository.java
@@ -1,28 +1,47 @@
package com.epam.edu.spring.core.template.repository;
import com.epam.edu.spring.core.template.entity.Item;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Repository;
+import javax.annotation.PostConstruct;
+import java.util.LinkedList;
+
/**
* Репозиторий, основанный на классе LinkedList.
* initialSequence должен случайно генерироваться из диапазона от 1 до 100
*/
+@Repository
public class LinkedListItemRepository extends AbstractRepository
- implements ItemRepository {
@Override
public Item getById(long id) {
+ for(Item item : holder) {
+ if(item.getId() == id) {
+ return item;
+ }
+ }
return null;
}
-
@Override
public boolean createItem(Item item) {
- return false;
+ if(!holder.isEmpty()) {
+ for(Item createItem : holder) {
+ if(createItem.getId() == item.getId()) {
+ return false;
+ }
+ }
+ }
+ holder.add(item);
+ return true;
}
-
- void setInitialSequence(int val) {
- //TODO
+ @Value(value = "#{ T(java.lang.Math).random() * 100 + 1 }")
+ public void setInitialSequence(int val) {
+ this.initialSequence = val;
}
+ @PostConstruct
void setHolder() {
- //TODO
+ this.holder = new LinkedList<>();
}
}
diff --git a/src/main/java/com/epam/edu/spring/core/template/service/SimpleItemService.java b/src/main/java/com/epam/edu/spring/core/template/service/SimpleItemService.java
deleted file mode 100644
index 802d512..0000000
--- a/src/main/java/com/epam/edu/spring/core/template/service/SimpleItemService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.epam.edu.spring.core.template.service;
-
-import com.epam.edu.spring.core.template.entity.Item;
-import com.epam.edu.spring.core.template.repository.ItemRepository;
-import com.epam.edu.spring.core.template.validator.ItemValidator;
-
-public class SimpleItemService implements ItemService {
-
- private ItemRepository itemRepository;
- private ItemValidator itemValidator;
-
- @Override
- public Item getById(long id) {
- return null;
- }
-
- @Override
- public boolean createItem(Item item) {
- return false;
- }
-}
diff --git a/src/main/java/com/epam/edu/spring/core/template/validator/SimpleItemValidator.java b/src/main/java/com/epam/edu/spring/core/template/validator/SimpleItemValidator.java
index 003600b..ca638f4 100644
--- a/src/main/java/com/epam/edu/spring/core/template/validator/SimpleItemValidator.java
+++ b/src/main/java/com/epam/edu/spring/core/template/validator/SimpleItemValidator.java
@@ -6,6 +6,31 @@ public class SimpleItemValidator implements ItemValidator {
@Override
public boolean isItemValid(Item item) {
- return false;
+ return isIdValid(item)&&isPriceValid(item)&&isNameValid(item);
+ }
+
+ private boolean isIdValid(Item item) {
+ if (item.getId() < 0) {
+ System.err.println("id must be positive");
+ return false;
+ }
+ return true;
+ }
+
+ private boolean isPriceValid(Item item) {
+ if (item.getPrice() < 0) {
+ System.err.println("Price must be positive.");
+ return false;
+ }
+ return true;
+ }
+
+ private boolean isNameValid(Item item) {
+ String itemName = item.getName();
+ if (itemName == null || itemName.isEmpty()) {
+ System.err.println("name is empty.");
+ return false;
+ }
+ return true;
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 69c2e92..a1a2d25 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,2 +1,2 @@
initial.sequence=42
-item.repository.implementation=
\ No newline at end of file
+item.repository.implementation=array
diff --git a/src/test/java/com/epam/edu/spring/core/template/SpringCoreTemplateTest.java b/src/test/java/com/epam/edu/spring/core/template/SpringCoreTemplateTest.java
new file mode 100644
index 0000000..ce276a0
--- /dev/null
+++ b/src/test/java/com/epam/edu/spring/core/template/SpringCoreTemplateTest.java
@@ -0,0 +1,23 @@
+package com.epam.edu.spring.core.template;
+
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.ApplicationContext;
+import static org.assertj.core.api.Assertions.assertThat;
+
+@SpringBootTest(classes = SpringCoreTemplate.class)
+public class SpringCoreTemplateTest {
+ @Autowired
+ ApplicationContext applicationContext;
+
+ @Test
+ @DisplayName("context loading")
+ public void contextLoads() {
+ assertThat(applicationContext).isNotNull();
+ }
+
+ }
+
diff --git a/src/test/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepositoryTest.java b/src/test/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepositoryTest.java
new file mode 100644
index 0000000..b4edd21
--- /dev/null
+++ b/src/test/java/com/epam/edu/spring/core/template/repository/ArrayListItemRepositoryTest.java
@@ -0,0 +1,54 @@
+package com.epam.edu.spring.core.template.repository;
+
+import com.epam.edu.spring.core.template.configuration.MainConfiguration;
+import com.epam.edu.spring.core.template.entity.Color;
+import com.epam.edu.spring.core.template.entity.Item;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+@ContextConfiguration(classes = MainConfiguration.class)
+public class ArrayListItemRepositoryTest {
+
+ @Autowired
+ ArrayListItemRepository arrayListItemRepository;
+
+ public static Item itemOne;
+ public static Item itemTwo;
+
+ @BeforeEach
+ public void createObjectOneTwo() {
+ itemOne = new Item(154, "ObjectOne", 8.15, Color.BLACK);
+ itemTwo = new Item(155, "ObjectTwo", 15.02, Color.WHITE);
+ arrayListItemRepository.setHolder();
+ }
+
+ @Test
+ @DisplayName("test method setHolder()")
+ void testSetHolder() {
+ Assertions.assertNotNull(arrayListItemRepository.holder);
+ }
+ @Test
+ @DisplayName("test method getById(long id)")
+ void testGetById() {
+ arrayListItemRepository.createItem(itemOne);
+ Assertions.assertEquals(arrayListItemRepository.getById(154), itemOne);
+ }
+ @Test
+ @DisplayName("test method createItem(Item item)")
+ void testCreateItem() {
+ Assertions.assertTrue(arrayListItemRepository.createItem(itemTwo));
+ }
+ @Test
+ @DisplayName("test method setInitialSequence(int val) ")
+ void testSetInitialSequence() {
+ Assertions.assertNotEquals(0, arrayListItemRepository.initialSequence);
+ }
+
+}
diff --git a/src/test/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepositoryTest.java b/src/test/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepositoryTest.java
new file mode 100644
index 0000000..68f9ffd
--- /dev/null
+++ b/src/test/java/com/epam/edu/spring/core/template/repository/LinkedListItemRepositoryTest.java
@@ -0,0 +1,54 @@
+package com.epam.edu.spring.core.template.repository;
+
+import com.epam.edu.spring.core.template.configuration.MainConfiguration;
+import com.epam.edu.spring.core.template.entity.Color;
+import com.epam.edu.spring.core.template.entity.Item;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+@ContextConfiguration(classes = MainConfiguration.class)
+public class LinkedListItemRepositoryTest {
+
+ private static Item itemOne;
+ private static Item itemTwo;
+
+
+ @Autowired
+ LinkedListItemRepository linkedListItemRepository;
+
+ @BeforeEach
+ private void createObjectOneTwo() {
+ itemOne = new Item(254, "test item 1", 12.32, Color.ORANGE);
+ itemTwo = new Item(255, "test item 2", 25.61, Color.YELLOW);
+ linkedListItemRepository.setHolder();
+ }
+ @Test
+ @DisplayName("test method setHolder()")
+ void testSetHolder() {
+ Assertions.assertNotNull(linkedListItemRepository.holder);
+ }
+ @Test
+ @DisplayName("test method setInitialSequence(int val) ")
+ void testSetInitialSequence() {
+ Assertions.assertNotEquals(0, linkedListItemRepository.initialSequence);
+ }
+ @Test
+ @DisplayName("test method getById(long id)")
+ void testGetById() {
+ linkedListItemRepository.createItem(itemOne);
+ Assertions.assertEquals(linkedListItemRepository.getById(254), itemOne);
+ }
+ @Test
+ @DisplayName("test method createItem(Item item)")
+ void testCreateItem() {
+ Assertions.assertTrue(linkedListItemRepository.createItem(itemTwo));
+ }
+
+}
diff --git a/src/test/java/com/epam/edu/spring/core/template/service/SimpleItemServiceTest.java b/src/test/java/com/epam/edu/spring/core/template/service/SimpleItemServiceTest.java
new file mode 100644
index 0000000..10679ef
--- /dev/null
+++ b/src/test/java/com/epam/edu/spring/core/template/service/SimpleItemServiceTest.java
@@ -0,0 +1,54 @@
+package com.epam.edu.spring.core.template.service;
+
+
+import com.epam.edu.spring.core.template.ItemService;
+import com.epam.edu.spring.core.template.configuration.MainConfiguration;
+import com.epam.edu.spring.core.template.entity.Color;
+import com.epam.edu.spring.core.template.entity.Item;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit.jupiter.SpringExtension;
+
+@ExtendWith(SpringExtension.class)
+@ContextConfiguration(classes = MainConfiguration.class)
+public class SimpleItemServiceTest {
+ public static Item itemOne;
+ public static Item itemTwo;
+ public static Item itemThree;
+
+ @Autowired
+ ItemService itemService;
+
+ @BeforeEach
+ private void createObjectOneTwo() {
+ itemOne = new Item(554, "itemOne", 222.22, Color.WHITE);
+ itemTwo = new Item(82, "itemTwo", 17.56, Color.BLACK);
+ itemThree = new Item(81, "itemThree", 18.00, Color.ORANGE);
+
+ }
+ @Test
+ @DisplayName("test method getById(long id)")
+ void testGetById() {
+ itemService.createItem(itemOne);
+ Assertions.assertEquals(itemService.getById(554), itemOne);
+ }
+
+ @Test
+ @DisplayName("test method createItem(Item item)")
+ void testCreateItem() {
+ Assertions.assertTrue(itemService.createItem(itemTwo));
+ }
+
+ @Test
+ @DisplayName("test method createItem(Item item)")
+ void itemCouldNotBeCreated() {
+ itemService.createItem(itemThree);
+ Assertions.assertFalse(itemService.createItem(itemThree));
+ }
+
+}