]> git.basschouten.com Git - openhab-addons.git/blob
72ba81af646c91ad0ecdf8a240a6b2acce47ec12
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2020 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.teleinfo.internal.reader.io;
14
15 import java.io.FileInputStream;
16
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.junit.Assert;
19 import org.junit.Test;
20 import org.openhab.binding.teleinfo.internal.dto.Frame;
21 import org.openhab.binding.teleinfo.internal.dto.cbemm.evoicc.FrameCbemmEvolutionIccBaseOption;
22 import org.openhab.binding.teleinfo.internal.dto.cbemm.evoicc.FrameCbemmEvolutionIccHcOption;
23 import org.openhab.binding.teleinfo.internal.dto.cbemm.evoicc.FrameCbemmEvolutionIccTempoOption;
24 import org.openhab.binding.teleinfo.internal.dto.cbetm.FrameCbetmLongBaseOption;
25 import org.openhab.binding.teleinfo.internal.dto.cbetm.FrameCbetmLongEjpOption;
26 import org.openhab.binding.teleinfo.internal.dto.common.FrameTempoOption.ProgrammeCircuit1;
27 import org.openhab.binding.teleinfo.internal.dto.common.FrameTempoOption.ProgrammeCircuit2;
28 import org.openhab.binding.teleinfo.internal.dto.common.Hhphc;
29 import org.openhab.binding.teleinfo.internal.dto.common.Ptec;
30 import org.openhab.binding.teleinfo.util.TestUtils;
31
32 /**
33  *
34  * @author Nicolas SIBERIL - Initial contribution
35  */
36 @NonNullByDefault
37 public class TeleinfoInputStreamTest {
38
39     @Test
40     public void testReadNextFrameCbetmBase1() throws Exception {
41         try (TeleinfoInputStream in = new TeleinfoInputStream(
42                 new FileInputStream(TestUtils.getTestFile("cbetm-base-option-1.raw")))) {
43             Frame frame = in.readNextFrame();
44
45             Assert.assertNotNull(frame);
46             Assert.assertEquals(FrameCbetmLongBaseOption.class, frame.getClass());
47             FrameCbetmLongBaseOption frameCbetmLongBaseOption = (FrameCbetmLongBaseOption) frame;
48             Assert.assertEquals("XXXXXXXXXXXX", frameCbetmLongBaseOption.getAdco());
49             Assert.assertEquals(20, frameCbetmLongBaseOption.getIsousc());
50             Assert.assertEquals(1181243, frameCbetmLongBaseOption.getBase());
51             Assert.assertEquals(Ptec.TH, frameCbetmLongBaseOption.getPtec());
52             Assert.assertEquals(0, frameCbetmLongBaseOption.getIinst1());
53             Assert.assertEquals(2, frameCbetmLongBaseOption.getIinst2());
54             Assert.assertEquals(0, frameCbetmLongBaseOption.getIinst3());
55             Assert.assertEquals(26, frameCbetmLongBaseOption.getImax1().intValue());
56             Assert.assertEquals(18, frameCbetmLongBaseOption.getImax2().intValue());
57             Assert.assertEquals(27, frameCbetmLongBaseOption.getImax3().intValue());
58             Assert.assertEquals(7990, frameCbetmLongBaseOption.getPmax());
59             Assert.assertEquals(540, frameCbetmLongBaseOption.getPapp());
60             Assert.assertEquals("00", frameCbetmLongBaseOption.getPpot());
61         }
62     }
63
64     @Test
65     public void testReadNextFrameCbemmEvoIccHc1() throws Exception {
66         try (TeleinfoInputStream in = new TeleinfoInputStream(
67                 new FileInputStream(TestUtils.getTestFile("cbemm-evo-icc-hc-option-1.raw")))) {
68             Frame frame = in.readNextFrame();
69
70             Assert.assertNotNull(frame);
71             Assert.assertEquals(FrameCbemmEvolutionIccHcOption.class, frame.getClass());
72             FrameCbemmEvolutionIccHcOption frameCbemmEvolutionIccHcOption = (FrameCbemmEvolutionIccHcOption) frame;
73             Assert.assertEquals("XXXXXXXXXXXX", frameCbemmEvolutionIccHcOption.getAdco());
74             Assert.assertEquals(30, frameCbemmEvolutionIccHcOption.getIsousc());
75             Assert.assertEquals(6906827, frameCbemmEvolutionIccHcOption.getHchc());
76             Assert.assertEquals(7617931, frameCbemmEvolutionIccHcOption.getHchp());
77             Assert.assertEquals(Ptec.HP, frameCbemmEvolutionIccHcOption.getPtec());
78             Assert.assertEquals(3, frameCbemmEvolutionIccHcOption.getIinst());
79             Assert.assertEquals(44, frameCbemmEvolutionIccHcOption.getImax().intValue());
80             Assert.assertEquals(680, frameCbemmEvolutionIccHcOption.getPapp());
81             Assert.assertNull(frameCbemmEvolutionIccHcOption.getAdps());
82             Assert.assertEquals(Hhphc.A, frameCbemmEvolutionIccHcOption.getHhphc());
83         }
84     }
85
86     @Test
87     public void testReadNextFrameCbetmEjp1() throws Exception {
88         try (TeleinfoInputStream in = new TeleinfoInputStream(
89                 new FileInputStream(TestUtils.getTestFile("cbetm-ejp-option-1.raw")))) {
90             Frame frame = in.readNextFrame();
91
92             Assert.assertNotNull(frame);
93             Assert.assertEquals(FrameCbetmLongEjpOption.class, frame.getClass());
94             FrameCbetmLongEjpOption frameCbetmLongEjpOption = (FrameCbetmLongEjpOption) frame;
95             Assert.assertEquals("XXXXXXXXXX", frameCbetmLongEjpOption.getAdco());
96             Assert.assertEquals(30, frameCbetmLongEjpOption.getIsousc());
97             Assert.assertEquals(1111111, frameCbetmLongEjpOption.getEjphn());
98             Assert.assertEquals(2222222, frameCbetmLongEjpOption.getEjphpm());
99             Assert.assertNull(frameCbetmLongEjpOption.getPejp());
100             Assert.assertEquals(Ptec.HN, frameCbetmLongEjpOption.getPtec());
101             Assert.assertEquals(10, frameCbetmLongEjpOption.getIinst1());
102             Assert.assertEquals(5, frameCbetmLongEjpOption.getIinst2());
103             Assert.assertEquals(8, frameCbetmLongEjpOption.getIinst3());
104             Assert.assertEquals(38, frameCbetmLongEjpOption.getImax1().intValue());
105             Assert.assertEquals(42, frameCbetmLongEjpOption.getImax2().intValue());
106             Assert.assertEquals(44, frameCbetmLongEjpOption.getImax3().intValue());
107             Assert.assertEquals(17480, frameCbetmLongEjpOption.getPmax());
108             Assert.assertEquals(5800, frameCbetmLongEjpOption.getPapp());
109             Assert.assertEquals("00", frameCbetmLongEjpOption.getPpot());
110         }
111     }
112
113     @Test
114     public void testReadNextFrameCbemmEvoIccTempo1() throws Exception {
115         try (TeleinfoInputStream in = new TeleinfoInputStream(
116                 new FileInputStream(TestUtils.getTestFile("cbemm-evo-icc-tempo-option-1.raw")))) {
117             Frame frame = in.readNextFrame();
118
119             Assert.assertNotNull(frame);
120             Assert.assertEquals(FrameCbemmEvolutionIccTempoOption.class, frame.getClass());
121             FrameCbemmEvolutionIccTempoOption frameCbemmEvolutionIccTempoOption = (FrameCbemmEvolutionIccTempoOption) frame;
122             Assert.assertEquals("XXXXXXXXXXXX", frameCbemmEvolutionIccTempoOption.getAdco());
123             Assert.assertEquals(45, frameCbemmEvolutionIccTempoOption.getIsousc());
124             Assert.assertEquals(2697099, frameCbemmEvolutionIccTempoOption.getBbrhcjb());
125             Assert.assertEquals(3494559, frameCbemmEvolutionIccTempoOption.getBbrhpjb());
126             Assert.assertEquals(41241, frameCbemmEvolutionIccTempoOption.getBbrhcjw());
127             Assert.assertEquals(194168, frameCbemmEvolutionIccTempoOption.getBbrhpjw());
128             Assert.assertEquals(0, frameCbemmEvolutionIccTempoOption.getBbrhcjr());
129             Assert.assertEquals(89736, frameCbemmEvolutionIccTempoOption.getBbrhpjr());
130             Assert.assertEquals(Ptec.HPJR, frameCbemmEvolutionIccTempoOption.getPtec());
131             Assert.assertNull(frameCbemmEvolutionIccTempoOption.getDemain());
132             Assert.assertEquals(3, frameCbemmEvolutionIccTempoOption.getIinst());
133             Assert.assertEquals(37, frameCbemmEvolutionIccTempoOption.getImax().intValue());
134             Assert.assertEquals(620, frameCbemmEvolutionIccTempoOption.getPapp());
135             Assert.assertNull(frameCbemmEvolutionIccTempoOption.getAdps());
136             Assert.assertEquals(Hhphc.Y, frameCbemmEvolutionIccTempoOption.getHhphc());
137             Assert.assertEquals(ProgrammeCircuit1.B, frameCbemmEvolutionIccTempoOption.getProgrammeCircuit1());
138             Assert.assertEquals(ProgrammeCircuit2.P2, frameCbemmEvolutionIccTempoOption.getProgrammeCircuit2());
139         }
140     }
141
142     @Test
143     public void testReadNextFrameCbemmEvoIccBase1() throws Exception {
144         try (TeleinfoInputStream in = new TeleinfoInputStream(
145                 new FileInputStream(TestUtils.getTestFile("cbemm-evo-icc-base-option-1.raw")))) {
146             Frame frame = in.readNextFrame();
147             Assert.assertNotNull(frame);
148             Assert.assertEquals(FrameCbemmEvolutionIccBaseOption.class, frame.getClass());
149             FrameCbemmEvolutionIccBaseOption frameCbemmEvolutionIccBaseOption = (FrameCbemmEvolutionIccBaseOption) frame;
150             Assert.assertEquals("031762120162", frameCbemmEvolutionIccBaseOption.getAdco());
151             Assert.assertEquals(30, frameCbemmEvolutionIccBaseOption.getIsousc());
152             Assert.assertEquals(190575, frameCbemmEvolutionIccBaseOption.getBase());
153             Assert.assertEquals(Ptec.TH, frameCbemmEvolutionIccBaseOption.getPtec());
154             Assert.assertEquals(1, frameCbemmEvolutionIccBaseOption.getIinst());
155             Assert.assertEquals(90, frameCbemmEvolutionIccBaseOption.getImax().intValue());
156             Assert.assertEquals(270, frameCbemmEvolutionIccBaseOption.getPapp());
157             Assert.assertNull(frameCbemmEvolutionIccBaseOption.getAdps());
158         }
159     }
160
161     @Test
162     public void testInvalidADPSgrouplineWithAutoRepairActivated() throws Exception {
163         try (TeleinfoInputStream in = new TeleinfoInputStream(
164                 new FileInputStream(TestUtils.getTestFile("invalid-adps-groupline.raw")), true)) {
165             Frame frame = in.readNextFrame();
166
167             Assert.assertNotNull(frame);
168             Assert.assertEquals(FrameCbemmEvolutionIccBaseOption.class, frame.getClass());
169             FrameCbemmEvolutionIccBaseOption frameCbemmEvolutionIccBaseOption = (FrameCbemmEvolutionIccBaseOption) frame;
170             Assert.assertEquals(37, frameCbemmEvolutionIccBaseOption.getAdps().intValue());
171         }
172     }
173 }