1 package org.example.customer;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertTrue;
7
8 import org.apache.logging.log4j.Level;
9 import org.apache.logging.log4j.LogManager;
10 import org.apache.logging.log4j.core.config.Configurator;
11 import org.junit.Before;
12 import org.junit.BeforeClass;
13 import org.junit.Test;
14
15
16 public class OrderItemTest
17 {
18 private OrderItem testOrderItem = null;
19
20 @BeforeClass
21 public static void setup()
22 {
23 Configurator.setLevel(LogManager.getLogger(OrderItem.class).getName(), Level.WARN);
24 }
25
26 @Before
27 public void setUp() throws Exception
28 {
29 testOrderItem = new OrderItem();
30 }
31
32 @Test
33 public void testOrderDefaultConstructor()
34 {
35 OrderItem defaultOrderItem = new OrderItem();
36 assertNotNull(defaultOrderItem);
37 }
38
39 @Test
40 public void testDefaultOrderId()
41 {
42 int expected = 1;
43 int actual = testOrderItem.getOrderId();
44 assertEquals(expected, actual);
45 }
46
47 @Test
48 public void testValidOrderId()
49 {
50 int[] good = { 2, 34, 999, 22, 1, 565656 };
51 for (int entry : good) {
52 testOrderItem.setOrderId(entry);
53 }
54 }
55
56 @Test(expected = IllegalArgumentException.class)
57 public void testInValidOrderId()
58 {
59 testOrderItem.setOrderId(0);
60 }
61
62 @Test
63 public void testDefaultProductId()
64 {
65 int expected = 1;
66 int actual = testOrderItem.getProductId();
67 assertEquals(expected, actual);
68 }
69
70 @Test
71 public void testValidProductId()
72 {
73 int[] good = { 2, 34, 999, 22, 1, 565656 };
74 for (int entry : good) {
75 testOrderItem.setProductId(entry);
76 }
77 }
78
79 @Test(expected = IllegalArgumentException.class)
80 public void testInValidProductId()
81 {
82 testOrderItem.setProductId(0);
83 }
84
85 @Test
86 public void testDefaultUnitPrice()
87 {
88 double expected = 0.01;
89 double actual = testOrderItem.getUnitPrice();
90 double precision = 0.001;
91 assertEquals(expected, actual, precision);
92 }
93
94 @Test
95 public void testValidUnitPrice()
96 {
97 double[] good = {2.0, 0.34, 999.50, 22.25, 1.0};
98 for (double entry : good) {
99 testOrderItem.setUnitPrice(entry);
100 }
101 }
102
103 @Test(expected = IllegalArgumentException.class)
104 public void testInValidUnitPrice()
105 {
106 testOrderItem.setUnitPrice(0.0);
107 }
108
109 @Test
110 public void testDefaultQuantity()
111 {
112 int expected = 1;
113 int actual = testOrderItem.getQuantity();
114 assertEquals(expected, actual);
115 }
116
117 @Test
118 public void testValidQuantity()
119 {
120 int[] good = { 2, 34, 999, 22, 1, 565656 };
121 for (int entry : good) {
122 testOrderItem.setQuantity(entry);
123 }
124 }
125
126 @Test(expected = IllegalArgumentException.class)
127 public void testInValidQuantity()
128 {
129 testOrderItem.setQuantity(0);
130 }
131
132 @Test
133 public void testDefaultSubTotal()
134 {
135 double expected = 0.01;
136 double actual = testOrderItem.getSubTotal();
137 double precision = 0.001;
138 assertEquals(expected, actual, precision);
139 }
140
141 @Test
142 public void testChangedSubTotal()
143 {
144 testOrderItem.setQuantity(23);
145 testOrderItem.setUnitPrice(5.55);
146
147 double expected = 23 * 5.55;
148 double actual = testOrderItem.getSubTotal();
149 double precision = 0.001;
150 assertEquals(expected, actual, precision);
151 }
152
153 @Test
154 public void testToString()
155 {
156 String expected = "OrderItem [Id=1, "
157 + "OrderId=1, ProductId=1, "
158 + "UnitPrice=0.01, Quantity=1, "
159 + "SubTotal=0.01]";
160 String actual = testOrderItem.toString();
161 assertEquals(expected, actual);
162 }
163
164 @Test public void testHashCode()
165 {
166 OrderItem sample = new OrderItem();
167 int expected = sample.hashCode();
168 int actual = testOrderItem.hashCode();
169 assertEquals(expected, actual);
170 }
171
172 @Test public void testEquals()
173 {
174 OrderItem sample = new OrderItem();
175 assertTrue(testOrderItem.equals(sample));
176 }
177
178 @Test public void testNotEquals()
179 {
180 OrderItem sample = new OrderItem();
181 sample.setOrderId(2);
182 assertFalse(testOrderItem.equals(sample));
183
184 Order junk = new Order();
185 assertFalse(testOrderItem.equals(junk));
186 }
187
188 }