View Javadoc
1   /*
2    *    Copyright 2010-2022 the original author or authors.
3    *
4    *    Licensed under the Apache License, Version 2.0 (the "License");
5    *    you may not use this file except in compliance with the License.
6    *    You may obtain a copy of the License at
7    *
8    *       https://www.apache.org/licenses/LICENSE-2.0
9    *
10   *    Unless required by applicable law or agreed to in writing, software
11   *    distributed under the License is distributed on an "AS IS" BASIS,
12   *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *    See the License for the specific language governing permissions and
14   *    limitations under the License.
15   */
16  package org.mybatis.jpetstore.domain;
17  
18  import static org.assertj.core.api.Assertions.assertThat;
19  
20  import java.math.BigDecimal;
21  import java.util.Date;
22  
23  import org.junit.jupiter.api.Test;
24  
25  class OrderTest {
26  
27    @Test
28    void initOrder() {
29      // given
30      Account account = new Account();
31      account.setUsername("mybatis");
32      account.setEmail("mybatis@example.com");
33      account.setFirstName("My");
34      account.setLastName("Batis");
35      account.setStatus("NG");
36      account.setAddress1("Address 1");
37      account.setAddress2("Address 2");
38      account.setCity("City");
39      account.setState("ST");
40      account.setZip("99001");
41      account.setCountry("JPN");
42      account.setPhone("09012345678");
43  
44      Cart cart = new Cart();
45      Item item = new Item();
46      item.setItemId("I01");
47      item.setListPrice(new BigDecimal("2.05"));
48      cart.addItem(item, true);
49      cart.addItem(item, true);
50  
51      Order order = new Order();
52  
53      // when
54      order.initOrder(account, cart);
55  
56      // then
57      assertThat(order.getUsername()).isSameAs(account.getUsername());
58      assertThat(order.getOrderDate()).isBeforeOrEqualsTo(new Date());
59      assertThat(order.getShipAddress1()).isEqualTo(account.getAddress1());
60      assertThat(order.getShipAddress2()).isEqualTo(account.getAddress2());
61      assertThat(order.getShipCity()).isEqualTo(account.getCity());
62      assertThat(order.getShipState()).isEqualTo(account.getState());
63      assertThat(order.getShipCountry()).isEqualTo(account.getCountry());
64      assertThat(order.getShipZip()).isEqualTo(account.getZip());
65      assertThat(order.getBillAddress1()).isEqualTo(account.getAddress1());
66      assertThat(order.getBillAddress2()).isEqualTo(account.getAddress2());
67      assertThat(order.getBillCity()).isEqualTo(account.getCity());
68      assertThat(order.getBillState()).isEqualTo(account.getState());
69      assertThat(order.getBillCountry()).isEqualTo(account.getCountry());
70      assertThat(order.getBillZip()).isEqualTo(account.getZip());
71      assertThat(order.getTotalPrice()).isEqualTo(new BigDecimal("4.10"));
72      assertThat(order.getCreditCard()).isEqualTo("999 9999 9999 9999");
73      assertThat(order.getCardType()).isEqualTo("Visa");
74      assertThat(order.getExpiryDate()).isEqualTo("12/03");
75      assertThat(order.getCourier()).isEqualTo("UPS");
76      assertThat(order.getLocale()).isEqualTo("CA");
77      assertThat(order.getStatus()).isEqualTo("P");
78      assertThat(order.getLineItems()).hasSize(1);
79      assertThat(order.getLineItems().get(0).getItem()).isSameAs(item);
80      assertThat(order.getLineItems().get(0).getLineNumber()).isEqualTo(1);
81      assertThat(order.getLineItems().get(0).getItemId()).isEqualTo("I01");
82      assertThat(order.getLineItems().get(0).getUnitPrice()).isEqualTo(new BigDecimal("2.05"));
83      assertThat(order.getLineItems().get(0).getQuantity()).isEqualTo(2);
84      assertThat(order.getLineItems().get(0).getTotal()).isEqualTo(new BigDecimal("4.10"));
85    }
86  
87  }