View Javadoc
1   /*
2    * Licensed under the GPL License. You may not use this file except in compliance with the License.
3    * You may obtain a copy of the License at
4    *
5    *   https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
6    *
7    * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
8    * WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
9    * PURPOSE.
10   */
11  package psiprobe.model;
12  
13  import static org.junit.jupiter.api.Assertions.assertEquals;
14  import static org.junit.jupiter.api.Assertions.assertNotNull;
15  import static org.junit.jupiter.api.Assertions.assertTrue;
16  
17  import com.codebox.bean.JavaBeanTester;
18  
19  import java.util.HashMap;
20  import java.util.Map;
21  
22  import org.junit.jupiter.api.Test;
23  
24  /**
25   * The Class TransportableModelTest.
26   */
27  class TransportableModelTest {
28  
29    /**
30     * Javabean tester.
31     */
32    @Test
33    void javabeanTester() {
34      JavaBeanTester.builder(TransportableModel.class).loadData().test();
35    }
36  
37    @Test
38    void testGetItemsWhenNull() {
39      TransportableModel model = new TransportableModel();
40      // items is null by default, should return empty map
41      assertNotNull(model.getItems());
42      assertTrue(model.getItems().isEmpty());
43    }
44  
45    @Test
46    void testGetItemsWhenSet() {
47      TransportableModel model = new TransportableModel();
48      Map<String, Object> items = new HashMap<>();
49      items.put("key1", "value1");
50      model.setItems(items);
51      assertEquals(1, model.getItems().size());
52      assertEquals("value1", model.getItems().get("key1"));
53    }
54  
55    @Test
56    void testPutAll() {
57      TransportableModel model = new TransportableModel();
58      Map<String, Object> items = new HashMap<>();
59      items.put("a", 1);
60      items.put("b", 2);
61      model.putAll(items);
62      assertEquals(2, model.getItems().size());
63    }
64  
65    @Test
66    void testPutAllWithNull() {
67      TransportableModel model = new TransportableModel();
68      // Should not throw
69      model.putAll(null);
70      assertTrue(model.getItems().isEmpty());
71    }
72  
73    @Test
74    void testGetItemsReturnsDefensiveCopy() {
75      TransportableModel model = new TransportableModel();
76      Map<String, Object> items = new HashMap<>();
77      items.put("key", "val");
78      model.setItems(items);
79      Map<String, Object> retrieved = model.getItems();
80      retrieved.put("extra", "value");
81      // original items should not be modified
82      assertEquals(1, model.getItems().size());
83    }
84  }