]> git.basschouten.com Git - openhab-addons.git/blob
9cf37252cef114625c0fab5149c282d720463cee
[openhab-addons.git] /
1 /*
2  * Copyright 2017 Gregory Moyer
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  *     http://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.openhab.binding.sleepiq.api.model;
17
18 import static org.junit.Assert.assertEquals;
19
20 import java.io.FileReader;
21
22 import org.junit.BeforeClass;
23 import org.junit.Test;
24 import org.openhab.binding.sleepiq.api.impl.GsonGenerator;
25 import org.openhab.binding.sleepiq.api.model.Sleeper;
26 import org.openhab.binding.sleepiq.api.test.AbstractTest;
27
28 import com.google.gson.Gson;
29
30 public class SleeperTest extends AbstractTest
31 {
32     private static Gson gson;
33
34     @BeforeClass
35     public static void setUpBeforeClass()
36     {
37         gson = GsonGenerator.create(true);
38     }
39
40     @Test
41     public void testSerializeAllFields() throws Exception
42     {
43         Sleeper sleeper = new Sleeper().withAccountId("-5555555555555555555")
44                                        .withAccountOwner(true)
45                                        .withActive(true)
46                                        .withAvatar("")
47                                        .withBedId("-9999999999999999999")
48                                        .withBirthMonth(6)
49                                        .withBirthYear("1970")
50                                        .withChild(false)
51                                        .withDuration("")
52                                        .withEmail("alice@domain.com")
53                                        .withEmailValidated(true)
54                                        .withFirstName("Alice")
55                                        .withHeight(64)
56                                        .withLastLogin("2017-02-17 20:19:36 CST")
57                                        .withLicenseVersion(6L)
58                                        .withMale(false)
59                                        .withSide(1)
60                                        .withSleeperId("-1111111111111111111")
61                                        .withSleepGoal(450)
62                                        .withTimezone("US/Pacific")
63                                        .withUsername("alice@domain.com")
64                                        .withWeight(110)
65                                        .withZipCode("90210");
66         assertEquals(readJson("sleeper.json"), gson.toJson(sleeper));
67     }
68
69     @Test
70     public void testSerializeLastLoginNull() throws Exception
71     {
72         Sleeper sleeper = new Sleeper().withLastLogin("null");
73         assertEquals(readJson("sleeper-lastlogin-null.json"), gson.toJson(sleeper));
74     }
75
76     @Test
77     public void testDeserializeAllFields() throws Exception
78     {
79         try (FileReader reader = new FileReader(getTestDataFile("sleeper.json")))
80         {
81             Sleeper sleeper = gson.fromJson(reader, Sleeper.class);
82             assertEquals("-5555555555555555555", sleeper.getAccountId());
83             assertEquals(true, sleeper.isAccountOwner());
84             assertEquals(true, sleeper.isActive());
85             assertEquals("", sleeper.getAvatar());
86             assertEquals("-9999999999999999999", sleeper.getBedId());
87             assertEquals(Integer.valueOf(6), sleeper.getBirthMonth());
88             assertEquals("1970", sleeper.getBirthYear());
89             assertEquals(false, sleeper.isChild());
90             assertEquals("", sleeper.getDuration());
91             assertEquals("alice@domain.com", sleeper.getEmail());
92             assertEquals(true, sleeper.isEmailValidated());
93             assertEquals("Alice", sleeper.getFirstName());
94             assertEquals(Integer.valueOf(64), sleeper.getHeight());
95             assertEquals("2017-02-17 20:19:36 CST", sleeper.getLastLogin());
96             assertEquals(Long.valueOf(6L), sleeper.getLicenseVersion());
97             assertEquals(false, sleeper.isMale());
98             assertEquals(Integer.valueOf(1), sleeper.getSide());
99             assertEquals("-1111111111111111111", sleeper.getSleeperId());
100             assertEquals(Integer.valueOf(450), sleeper.getSleepGoal());
101             assertEquals("US/Pacific", sleeper.getTimezone());
102             assertEquals("alice@domain.com", sleeper.getUsername());
103             assertEquals(Integer.valueOf(110), sleeper.getWeight());
104             assertEquals("90210", sleeper.getZipCode());
105         }
106     }
107
108     @Test
109     public void testDeserializeLastLoginNull() throws Exception
110     {
111         try (FileReader reader = new FileReader(getTestDataFile("sleeper-lastlogin-null.json")))
112         {
113             Sleeper sleeper = gson.fromJson(reader, Sleeper.class);
114             assertEquals("null", sleeper.getLastLogin());
115         }
116     }
117 }