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.util.Map;
21
22 import org.junit.jupiter.api.Test;
23 import org.junit.jupiter.api.extension.ExtendWith;
24 import org.mybatis.jpetstore.domain.Account;
25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.jdbc.core.JdbcTemplate;
27 import org.springframework.test.context.ContextConfiguration;
28 import org.springframework.test.context.junit.jupiter.SpringExtension;
29 import org.springframework.transaction.annotation.Transactional;
30
31 @ExtendWith(SpringExtension.class)
32 @ContextConfiguration(classes = MapperTestContext.class)
33 @Transactional
34 class AccountMapperTest {
35
36 @Autowired
37 private AccountMapper mapper;
38
39 @Autowired
40 private JdbcTemplate jdbcTemplate;
41
42 @Test
43 void getAccountByUsername() {
44
45 String username = "j2ee";
46
47
48 Account account = mapper.getAccountByUsername(username);
49
50
51 assertThat(account.getUsername()).isEqualTo("j2ee");
52 assertThat(account.getEmail()).isEqualTo("yourname@yourdomain.com");
53 assertThat(account.getFirstName()).isEqualTo("ABC");
54 assertThat(account.getLastName()).isEqualTo("XYX");
55 assertThat(account.getStatus()).isEqualTo("OK");
56 assertThat(account.getAddress1()).isEqualTo("901 San Antonio Road");
57 assertThat(account.getAddress2()).isEqualTo("MS UCUP02-206");
58 assertThat(account.getCity()).isEqualTo("Palo Alto");
59 assertThat(account.getState()).isEqualTo("CA");
60 assertThat(account.getZip()).isEqualTo("94303");
61 assertThat(account.getCountry()).isEqualTo("USA");
62 assertThat(account.getPhone()).isEqualTo("555-555-5555");
63 assertThat(account.getLanguagePreference()).isEqualTo("english");
64 assertThat(account.getFavouriteCategoryId()).isEqualTo("DOGS");
65 assertThat(account.isListOption()).isTrue();
66 assertThat(account.isBannerOption()).isTrue();
67 assertThat(account.getBannerName()).isEqualTo("<image src=\"../images/banner_dogs.gif\">");
68
69 }
70
71 @Test
72 void getAccountByUsernameAndPassword() {
73
74 String username = "ACID";
75 String password = "ACID";
76
77
78 Account account = mapper.getAccountByUsernameAndPassword(username, password);
79
80
81 assertThat(account.getUsername()).isEqualTo("ACID");
82 assertThat(account.getEmail()).isEqualTo("acid@yourdomain.com");
83 assertThat(account.getFirstName()).isEqualTo("ABC");
84 assertThat(account.getLastName()).isEqualTo("XYX");
85 assertThat(account.getStatus()).isEqualTo("OK");
86 assertThat(account.getAddress1()).isEqualTo("901 San Antonio Road");
87 assertThat(account.getAddress2()).isEqualTo("MS UCUP02-206");
88 assertThat(account.getCity()).isEqualTo("Palo Alto");
89 assertThat(account.getState()).isEqualTo("CA");
90 assertThat(account.getZip()).isEqualTo("94303");
91 assertThat(account.getCountry()).isEqualTo("USA");
92 assertThat(account.getPhone()).isEqualTo("555-555-5555");
93 assertThat(account.getLanguagePreference()).isEqualTo("english");
94 assertThat(account.getFavouriteCategoryId()).isEqualTo("CATS");
95 assertThat(account.isListOption()).isTrue();
96 assertThat(account.isBannerOption()).isTrue();
97 assertThat(account.getBannerName()).isEqualTo("<image src=\"../images/banner_cats.gif\">");
98
99 }
100
101 @Test
102 void insertAccount() {
103
104
105 Account account = new Account();
106 account.setUsername("mybatis");
107 account.setEmail("mybatis@example.com");
108 account.setFirstName("My");
109 account.setLastName("Batis");
110 account.setStatus("NG");
111 account.setAddress1("Address 1");
112 account.setAddress2("Address 2");
113 account.setCity("City");
114 account.setState("ST");
115 account.setZip("99001");
116 account.setCountry("JPN");
117 account.setPhone("09012345678");
118
119
120 mapper.insertAccount(account);
121
122
123 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM account WHERE userid = ?", "mybatis");
124 assertThat(record).hasSize(12).containsEntry("USERID", account.getUsername())
125 .containsEntry("EMAIL", account.getEmail()).containsEntry("FIRSTNAME", account.getFirstName())
126 .containsEntry("LASTNAME", account.getLastName()).containsEntry("STATUS", account.getStatus())
127 .containsEntry("ADDR1", account.getAddress1()).containsEntry("ADDR2", account.getAddress2())
128 .containsEntry("CITY", account.getCity()).containsEntry("STATE", account.getState())
129 .containsEntry("ZIP", account.getZip()).containsEntry("COUNTRY", account.getCountry())
130 .containsEntry("PHONE", account.getPhone());
131 }
132
133 @Test
134 void insertProfile() {
135
136
137 Account account = new Account();
138 account.setUsername("mybatis");
139 account.setLanguagePreference("japanese");
140 account.setFavouriteCategoryId("C01");
141 account.setListOption(true);
142 account.setBannerOption(false);
143
144
145 mapper.insertProfile(account);
146
147
148 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM profile WHERE userid = ?", "mybatis");
149
150 assertThat(record).hasSize(5).containsEntry("USERID", account.getUsername())
151 .containsEntry("LANGPREF", account.getLanguagePreference())
152 .containsEntry("FAVCATEGORY", account.getFavouriteCategoryId()).containsEntry("MYLISTOPT", 1)
153 .containsEntry("BANNEROPT", 0);
154 }
155
156 @Test
157 void insertSignon() {
158
159
160 Account account = new Account();
161 account.setUsername("mybatis");
162 account.setPassword("password");
163
164
165 mapper.insertSignon(account);
166
167
168 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM signon WHERE username = ?", "mybatis");
169
170 assertThat(record).hasSize(2).containsEntry("USERNAME", account.getUsername()).containsEntry("PASSWORD",
171 account.getPassword());
172 }
173
174 @Test
175 void updateAccount() {
176
177
178 Account account = new Account();
179 account.setUsername("j2ee");
180 account.setEmail("mybatis@example.com");
181 account.setFirstName("My");
182 account.setLastName("Batis");
183 account.setStatus("NG");
184 account.setAddress1("Address 1");
185 account.setAddress2("Address 2");
186 account.setCity("City");
187 account.setState("ST");
188 account.setZip("99001");
189 account.setCountry("JPN");
190 account.setPhone("09012345678");
191
192
193 mapper.updateAccount(account);
194
195
196 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM account WHERE userid = ?", "j2ee");
197
198 assertThat(record).hasSize(12).containsEntry("USERID", account.getUsername())
199 .containsEntry("EMAIL", account.getEmail()).containsEntry("FIRSTNAME", account.getFirstName())
200 .containsEntry("LASTNAME", account.getLastName()).containsEntry("STATUS", account.getStatus())
201 .containsEntry("ADDR1", account.getAddress1()).containsEntry("ADDR2", account.getAddress2())
202 .containsEntry("CITY", account.getCity()).containsEntry("STATE", account.getState())
203 .containsEntry("ZIP", account.getZip()).containsEntry("COUNTRY", account.getCountry())
204 .containsEntry("PHONE", account.getPhone());
205 }
206
207 @Test
208 void updateProfile() {
209
210
211 Account account = new Account();
212 account.setUsername("j2ee");
213 account.setLanguagePreference("japanese");
214 account.setFavouriteCategoryId("C01");
215 account.setListOption(false);
216 account.setBannerOption(false);
217
218
219 mapper.updateProfile(account);
220
221
222 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM profile WHERE userid = ?", "j2ee");
223
224 assertThat(record).hasSize(5).containsEntry("USERID", account.getUsername())
225 .containsEntry("LANGPREF", account.getLanguagePreference())
226 .containsEntry("FAVCATEGORY", account.getFavouriteCategoryId()).containsEntry("MYLISTOPT", 0)
227 .containsEntry("BANNEROPT", 0);
228 }
229
230 @Test
231 void updateSignon() {
232
233
234 Account account = new Account();
235 account.setUsername("j2ee");
236 account.setPassword("password");
237
238
239 mapper.updateSignon(account);
240
241
242 Map<String, Object> record = jdbcTemplate.queryForMap("SELECT * FROM signon WHERE username = ?", "j2ee");
243
244 assertThat(record).hasSize(2).containsEntry("USERNAME", account.getUsername()).containsEntry("PASSWORD",
245 account.getPassword());
246 }
247
248 }