1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.jpetstore.mapper;
17
18 import static org.assertj.core.api.Assertions.assertThat;
19
20 import java.math.BigDecimal;
21 import java.time.LocalDate;
22 import java.time.LocalDateTime;
23 import java.util.List;
24 import java.util.Map;
25
26 import org.junit.jupiter.api.Test;
27 import org.junit.jupiter.api.extension.ExtendWith;
28 import org.mybatis.jpetstore.domain.Order;
29 import org.springframework.beans.factory.annotation.Autowired;
30 import org.springframework.jdbc.core.JdbcTemplate;
31 import org.springframework.test.context.ContextConfiguration;
32 import org.springframework.test.context.junit.jupiter.SpringExtension;
33 import org.springframework.transaction.annotation.Transactional;
34
35 @ExtendWith(SpringExtension.class)
36 @ContextConfiguration(classes = MapperTestContext.class)
37 @Transactional
38 class OrderMapperTest {
39
40 @Autowired
41 private OrderMapper mapper;
42
43 @Autowired
44 private JdbcTemplate jdbcTemplate;
45
46 @Test
47 void insertOrder() {
48
49 Order order = new Order();
50 order.setOrderId(1);
51 order.setOrderDate(java.sql.Timestamp.valueOf(LocalDateTime.of(2018, 12, 31, 23, 59, 59)));
52 order.setUsername("j2ee");
53 order.setCardType("Visa");
54 order.setCreditCard("1234 5678 9012 3456");
55 order.setExpiryDate("06/2022");
56 order.setCourier("Courier");
57 order.setLocale("ja");
58 order.setTotalPrice(new BigDecimal("2000.05"));
59 order.setBillAddress1("Bill Address1");
60 order.setBillAddress2("Bill Address2");
61 order.setBillCity("Bill City");
62 order.setBillState("Bill State");
63 order.setBillCountry("USA");
64 order.setBillZip("80001");
65 order.setBillToFirstName("Bill First Name");
66 order.setBillToLastName("Bill Last Name");
67 order.setShipAddress1("Ship Address1");
68 order.setShipAddress2("Ship Address2");
69 order.setShipCity("Ship City");
70 order.setShipState("Ship State");
71 order.setShipCountry("JPN");
72 order.setShipZip("70001");
73 order.setShipToFirstName("Ship First Name");
74 order.setShipToLastName("Ship Last Name");
75
76
77 mapper.insertOrder(order);
78
79
80 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM orders WHERE orderid = ?", 1);
81 assertThat(record).hasSize(25).containsEntry("ORDERID", order.getOrderId())
82 .containsEntry("USERID", order.getUsername())
83 .containsEntry("ORDERDATE", java.sql.Date.valueOf(LocalDate.of(2018, 12, 31)))
84 .containsEntry("SHIPADDR1", order.getShipAddress1()).containsEntry("SHIPADDR2", order.getShipAddress2())
85 .containsEntry("SHIPCITY", order.getShipCity()).containsEntry("SHIPSTATE", order.getShipState())
86 .containsEntry("SHIPZIP", order.getShipZip()).containsEntry("SHIPCOUNTRY", order.getShipCountry())
87 .containsEntry("SHIPTOFIRSTNAME", order.getShipToFirstName())
88 .containsEntry("SHIPTOLASTNAME", order.getShipToLastName()).containsEntry("BILLADDR1", order.getBillAddress1())
89 .containsEntry("BILLADDR2", order.getBillAddress2()).containsEntry("BILLCITY", order.getBillCity())
90 .containsEntry("BILLSTATE", order.getBillState()).containsEntry("BILLZIP", order.getBillZip())
91 .containsEntry("BILLCOUNTRY", order.getBillCountry())
92 .containsEntry("BILLTOFIRSTNAME", order.getBillToFirstName())
93 .containsEntry("BILLTOLASTNAME", order.getBillToLastName()).containsEntry("COURIER", order.getCourier())
94 .containsEntry("TOTALPRICE", order.getTotalPrice()).containsEntry("CREDITCARD", order.getCreditCard())
95 .containsEntry("EXPRDATE", order.getExpiryDate()).containsEntry("CARDTYPE", order.getCardType())
96 .containsEntry("LOCALE", order.getLocale());
97
98 }
99
100 @Test
101 void insertOrderStatus() {
102
103 Order order = new Order();
104 order.setOrderId(1);
105 order.setOrderDate(java.sql.Timestamp.valueOf(LocalDateTime.of(2018, 12, 31, 23, 59, 59)));
106 order.setStatus("OK");
107
108
109 mapper.insertOrderStatus(order);
110
111
112 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM orderstatus WHERE orderid = ?", 1);
113 assertThat(record).hasSize(4).containsEntry("ORDERID", order.getOrderId())
114 .containsEntry("LINENUM", order.getOrderId())
115 .containsEntry("TIMESTAMP", java.sql.Date.valueOf(LocalDate.of(2018, 12, 31)))
116 .containsEntry("STATUS", order.getStatus());
117
118 }
119
120 @Test
121 void getOrdersByUsername() {
122
123 Order newOrder = new Order();
124 newOrder.setOrderId(1);
125 newOrder.setOrderDate(java.sql.Timestamp.valueOf(LocalDateTime.of(2018, 12, 31, 23, 59, 59)));
126 newOrder.setStatus("OK");
127 newOrder.setUsername("j2ee");
128 newOrder.setCardType("Visa");
129 newOrder.setCreditCard("1234 5678 9012 3456");
130 newOrder.setExpiryDate("06/2022");
131 newOrder.setCourier("Courier");
132 newOrder.setLocale("ja");
133 newOrder.setTotalPrice(new BigDecimal("2000.05"));
134 newOrder.setBillAddress1("Bill Address1");
135 newOrder.setBillAddress2("Bill Address2");
136 newOrder.setBillCity("Bill City");
137 newOrder.setBillState("Bill State");
138 newOrder.setBillCountry("USA");
139 newOrder.setBillZip("80001");
140 newOrder.setBillToFirstName("Bill First Name");
141 newOrder.setBillToLastName("Bill Last Name");
142 newOrder.setShipAddress1("Ship Address1");
143 newOrder.setShipAddress2("Ship Address2");
144 newOrder.setShipCity("Ship City");
145 newOrder.setShipState("Ship State");
146 newOrder.setShipCountry("JPN");
147 newOrder.setShipZip("70001");
148 newOrder.setShipToFirstName("Ship First Name");
149 newOrder.setShipToLastName("Ship Last Name");
150 mapper.insertOrder(newOrder);
151 mapper.insertOrderStatus(newOrder);
152
153
154 List<Order> orders = mapper.getOrdersByUsername("j2ee");
155
156
157 assertThat(orders).hasSize(1);
158 assertThat(orders.get(0).getOrderId()).isEqualTo(newOrder.getOrderId());
159 assertThat(orders.get(0).getOrderDate()).isEqualTo(java.sql.Date.valueOf(LocalDate.of(2018, 12, 31)));
160 assertThat(orders.get(0).getCardType()).isEqualTo(newOrder.getCardType());
161 assertThat(orders.get(0).getCreditCard()).isEqualTo(newOrder.getCreditCard());
162 assertThat(orders.get(0).getExpiryDate()).isEqualTo(newOrder.getExpiryDate());
163 assertThat(orders.get(0).getCourier()).isEqualTo(newOrder.getCourier());
164 assertThat(orders.get(0).getLocale()).isEqualTo(newOrder.getLocale());
165 assertThat(orders.get(0).getTotalPrice()).isEqualTo(newOrder.getTotalPrice());
166 assertThat(orders.get(0).getBillAddress1()).isEqualTo(newOrder.getBillAddress1());
167 assertThat(orders.get(0).getBillAddress2()).isEqualTo(newOrder.getBillAddress2());
168 assertThat(orders.get(0).getBillCity()).isEqualTo(newOrder.getBillCity());
169 assertThat(orders.get(0).getBillState()).isEqualTo(newOrder.getBillState());
170 assertThat(orders.get(0).getBillCountry()).isEqualTo(newOrder.getBillCountry());
171 assertThat(orders.get(0).getBillZip()).isEqualTo(newOrder.getBillZip());
172 assertThat(orders.get(0).getBillToFirstName()).isEqualTo(newOrder.getBillToFirstName());
173 assertThat(orders.get(0).getBillToLastName()).isEqualTo(newOrder.getBillToLastName());
174 assertThat(orders.get(0).getShipAddress1()).isEqualTo(newOrder.getShipAddress1());
175 assertThat(orders.get(0).getShipAddress2()).isEqualTo(newOrder.getShipAddress2());
176 assertThat(orders.get(0).getShipCity()).isEqualTo(newOrder.getShipCity());
177 assertThat(orders.get(0).getShipState()).isEqualTo(newOrder.getShipState());
178 assertThat(orders.get(0).getShipCountry()).isEqualTo(newOrder.getShipCountry());
179 assertThat(orders.get(0).getShipZip()).isEqualTo(newOrder.getShipZip());
180 assertThat(orders.get(0).getShipToFirstName()).isEqualTo(newOrder.getShipToFirstName());
181 assertThat(orders.get(0).getShipToLastName()).isEqualTo(newOrder.getShipToLastName());
182 }
183
184 @Test
185 void getOrder() {
186
187 Order newOrder = new Order();
188 newOrder.setOrderId(1);
189 newOrder.setOrderDate(java.sql.Timestamp.valueOf(LocalDateTime.of(2018, 12, 31, 23, 59, 59)));
190 newOrder.setStatus("OK");
191 newOrder.setUsername("j2ee");
192 newOrder.setCardType("Visa");
193 newOrder.setCreditCard("1234 5678 9012 3456");
194 newOrder.setExpiryDate("06/2022");
195 newOrder.setCourier("Courier");
196 newOrder.setLocale("ja");
197 newOrder.setTotalPrice(new BigDecimal("2000.05"));
198 newOrder.setBillAddress1("Bill Address1");
199 newOrder.setBillAddress2("Bill Address2");
200 newOrder.setBillCity("Bill City");
201 newOrder.setBillState("Bill State");
202 newOrder.setBillCountry("USA");
203 newOrder.setBillZip("80001");
204 newOrder.setBillToFirstName("Bill First Name");
205 newOrder.setBillToLastName("Bill Last Name");
206 newOrder.setShipAddress1("Ship Address1");
207 newOrder.setShipAddress2("Ship Address2");
208 newOrder.setShipCity("Ship City");
209 newOrder.setShipState("Ship State");
210 newOrder.setShipCountry("JPN");
211 newOrder.setShipZip("70001");
212 newOrder.setShipToFirstName("Ship First Name");
213 newOrder.setShipToLastName("Ship Last Name");
214 mapper.insertOrder(newOrder);
215 mapper.insertOrderStatus(newOrder);
216
217
218 Order order = mapper.getOrder(1);
219
220
221 assertThat(order.getOrderId()).isEqualTo(newOrder.getOrderId());
222 assertThat(order.getOrderDate()).isEqualTo(java.sql.Date.valueOf(LocalDate.of(2018, 12, 31)));
223 assertThat(order.getCardType()).isEqualTo(newOrder.getCardType());
224 assertThat(order.getCreditCard()).isEqualTo(newOrder.getCreditCard());
225 assertThat(order.getExpiryDate()).isEqualTo(newOrder.getExpiryDate());
226 assertThat(order.getCourier()).isEqualTo(newOrder.getCourier());
227 assertThat(order.getLocale()).isEqualTo(newOrder.getLocale());
228 assertThat(order.getTotalPrice()).isEqualTo(newOrder.getTotalPrice());
229 assertThat(order.getBillAddress1()).isEqualTo(newOrder.getBillAddress1());
230 assertThat(order.getBillAddress2()).isEqualTo(newOrder.getBillAddress2());
231 assertThat(order.getBillCity()).isEqualTo(newOrder.getBillCity());
232 assertThat(order.getBillState()).isEqualTo(newOrder.getBillState());
233 assertThat(order.getBillCountry()).isEqualTo(newOrder.getBillCountry());
234 assertThat(order.getBillZip()).isEqualTo(newOrder.getBillZip());
235 assertThat(order.getBillToFirstName()).isEqualTo(newOrder.getBillToFirstName());
236 assertThat(order.getBillToLastName()).isEqualTo(newOrder.getBillToLastName());
237 assertThat(order.getShipAddress1()).isEqualTo(newOrder.getShipAddress1());
238 assertThat(order.getShipAddress2()).isEqualTo(newOrder.getShipAddress2());
239 assertThat(order.getShipCity()).isEqualTo(newOrder.getShipCity());
240 assertThat(order.getShipState()).isEqualTo(newOrder.getShipState());
241 assertThat(order.getShipCountry()).isEqualTo(newOrder.getShipCountry());
242 assertThat(order.getShipZip()).isEqualTo(newOrder.getShipZip());
243 assertThat(order.getShipToFirstName()).isEqualTo(newOrder.getShipToFirstName());
244 assertThat(order.getShipToLastName()).isEqualTo(newOrder.getShipToLastName());
245 }
246
247 }