/*
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of
* the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright (c) 2014 Digi International Inc., All Rights Reserved.
*/
package com.digi.android.wva.test.model;
import android.os.Parcel;
import android.test.InstrumentationTestCase;
import com.digi.android.wva.model.EndpointConfiguration;
import com.digi.wva.async.AlarmType;
/**
* Created by mwadsten on 5/24/13.
*/
public class EndpointConfigurationTest extends InstrumentationTestCase {
public void testConstruction() {
EndpointConfiguration c = new EndpointConfiguration("Test Configuration");
assertEquals("Endpoint name incorrect", "Test Configuration", c.getEndpoint());
assertNull("Subscription configuration non-null", c.getSubscriptionConfig());
assertNull("Alarm configuration non-null", c.getAlarmConfig());
assertEquals("Title string not of format '<name> (not subscribed)'",
"Test Configuration (not subscribed)", c.getTitleString());
assertNull("Alarm summary non-null", c.getAlarmSummary());
assertFalse("isSubscribed returned true", c.isSubscribed());
assertFalse("hasCreatedAlarm returned true", c.hasCreatedAlarm());
}
public void testAlarmTypeToFromString() {
assertEquals("ABOVE bad", "above", AlarmType.makeString(AlarmType.ABOVE));
assertEquals("BELOW bad", "below", AlarmType.makeString(AlarmType.BELOW));
assertNotNull("above from string bad", AlarmType.fromString("above"));
assertEquals("above from string not right", AlarmType.ABOVE, AlarmType.fromString("above"));
}
public void testAlarmConfigConstruction() {
// TODO: test creation for each type?
EndpointConfiguration.AlarmConfig c = new EndpointConfiguration.AlarmConfig(AlarmType.ABOVE, 0.0, 100);
assertEquals("Alarm type not saved right", AlarmType.ABOVE, c.getType());
assertEquals("Alarm interval not saved right", 100, c.getInterval());
assertEquals("Alarm threshold not saved right", 0.0, c.getThreshold());
// What does isCreated represent? I don't remember anymore.
// Might have to do with create/delete alarms.
}
public void testSubscriptionConfigConstruction() {
EndpointConfiguration.SubscriptionConfig c = new EndpointConfiguration.SubscriptionConfig(10);
assertEquals("Wrong interval", 10, c.getInterval());
assertFalse("isSubscribed is wrong", c.isSubscribed());
}
public void testEndpointConfigurationParceling() {
EndpointConfiguration c, c2;
EndpointConfiguration.SubscriptionConfig sc;
EndpointConfiguration.AlarmConfig ac;
c = new EndpointConfiguration("Oranges");
// Write out to the parcel
Parcel p = Parcel.obtain();
c.writeToParcel(p, 0);
// Read the configuration back out.
c2 = EndpointConfiguration.CREATOR.createFromParcel(p);
assertNotNull("Endpoint configuration createFromParcel came back null", c2);
assertEquals("Endpoint name lost", "Oranges", c2.getEndpoint());
assertNull("Subscription config somehow introduced", c2.getSubscriptionConfig());
assertNull("Alarm config somehow introduced", c2.getAlarmConfig());
c = new EndpointConfiguration("Apples");
sc = new EndpointConfiguration.SubscriptionConfig(50);
ac = new EndpointConfiguration.AlarmConfig(AlarmType.BELOW, 100.0, 10);
c.setSubscriptionConfig(sc);
c.setAlarmConfig(ac);
// Write out to the parcel
p = Parcel.obtain();
c.writeToParcel(p, 0);
// Read the configuration back out.
c2 = EndpointConfiguration.CREATOR.createFromParcel(p);
assertNotNull("Endpoint configuration createFromParcel came back null", c2);
EndpointConfiguration.SubscriptionConfig sc2 = c2.getSubscriptionConfig();
EndpointConfiguration.AlarmConfig ac2 = c2.getAlarmConfig();
assertEquals("Endpoint name lost", "Apples", c2.getEndpoint());
assertNotNull("Subscription config lost", sc2);
assertNotNull("Alarm config lost", ac2);
assertEquals("Subscription interval lost", sc.getInterval(), sc2.getInterval());
assertEquals("Subscription status lost", sc.isSubscribed(), sc2.isSubscribed());
assertEquals("Alarm type lost", ac.getType(), ac2.getType());
assertEquals("Alarm threshold lost", ac.getThreshold(), ac2.getThreshold());
assertEquals("Alarm interval lost", ac.getInterval(), ac2.getInterval());
}
}