/*
* 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.adapters;
import android.test.AndroidTestCase;
import com.digi.android.wva.adapters.VariableAdapter;
import com.digi.android.wva.model.VehicleData;
import com.digi.android.wva.util.VehicleDataList;
import org.joda.time.DateTime;
import java.util.ArrayList;
/**
* Created by mwadsten on 5/24/13.
*/
public class VariableAdapterTest extends AndroidTestCase {
@Override
protected void setUp() throws Exception {
VehicleDataList.initInstance();
VariableAdapter.initInstance(getContext(), VehicleDataList.getInstance());
VariableAdapter.getInstance().clear();
}
private VariableAdapter get() {
return VariableAdapter.getInstance();
}
public void testInitialized() {
assertNotNull(VariableAdapter.getInstance());
}
public void testAddNew() {
ArrayList<VehicleData> lis = new ArrayList<VehicleData>();
for (int i = 0; i < 100; i++) {
lis.add(new VehicleData("Var" + i, (double) i, DateTime.now()));
}
get().add(lis.get(10));
assertEquals("Size after add is not 1", 1, get().getCount());
assertSame("Item not the same", get().getItem(0), lis.get(10));
}
public void testAddUpdating() {
// fail("This test has not been implemented yet.");
}
public void testRemoveEndpoint() {
get().add(new VehicleData("Test", 0.0, DateTime.now()));
assertEquals("Size after initial add is not 1", 1, get().getCount());
get().removeEndpoint("Test");
assertEquals("removeEndpoint did not remove the endpoint", 0, get().getCount());
}
public void testAddAll() {
ArrayList<VehicleData> lis = new ArrayList<VehicleData>();
for (int i = 0; i < 100; i++) {
lis.add(new VehicleData("Var" + i, (double) i, DateTime.now()));
}
assertEquals("Adapter not initially empty", 0, get().getCount());
get().addAll(lis);
assertEquals("addAll did not add all...", lis.size(), get().getCount());
}
public void testAddAllUpdating() {
// fail("This test has not been implemented yet.");
}
public void testClear() {
VariableAdapter adapter = get();
for (int i = 0; i < 100; i++) {
adapter.add(new VehicleData("Test" + i, (double) i, null));
}
assertEquals("Filling adapter did not work completely?", 100, adapter.getCount());
adapter.clear();
assertEquals("clear() did not work", 0, adapter.getCount());
}
public void testGetCount() {
VariableAdapter adapter = get();
for (int i = 0; i < 100; i++) {
adapter.add(new VehicleData("Test" + i, (double) i, null));
}
assertEquals("incorrect return value after initial fill up", 100, adapter.getCount());
adapter.add(new VehicleData("Another", -1, null));
}
public void testGetItem() {
VariableAdapter adapter = get();
VehicleData data = new VehicleData("Test", 0, null);
adapter.add(data);
assertSame("getItem(0) returned wrong thing", data, adapter.getItem(0));
}
public void testGetPosition() {
ArrayList<VehicleData> datas = new ArrayList<VehicleData>();
for (int i = 0; i < 10; i++) {
datas.add(new VehicleData("Test " + i, (double) i, null));
}
for (VehicleData c : datas) {
get().add(c);
}
assertEquals("Test 0 in wrong position", 0, get().getPosition(datas.get(0)));
assertEquals("Test 1 in wrong position", 1, get().getPosition(datas.get(1)));
assertEquals("Test 2 in wrong position", 2, get().getPosition(datas.get(2)));
assertEquals("Test 3 in wrong position", 3, get().getPosition(datas.get(3)));
assertEquals("Test 4 in wrong position", 4, get().getPosition(datas.get(4)));
assertEquals("Test 5 in wrong position", 5, get().getPosition(datas.get(5)));
assertEquals("Test 6 in wrong position", 6, get().getPosition(datas.get(6)));
assertEquals("Test 7 in wrong position", 7, get().getPosition(datas.get(7)));
assertEquals("Test 8 in wrong position", 8, get().getPosition(datas.get(8)));
assertEquals("Test 9 in wrong position", 9, get().getPosition(datas.get(9)));
}
public void testInsert() {
VehicleData d1 = new VehicleData("Test1", 0, null);
VehicleData d2 = new VehicleData("Test2", 1, null);
get().insert(d1, 0);
assertSame("insert(0) failed?", get().getItem(0), d1);
get().insert(d2, 0);
assertSame("insert(0) didn't work", get().getItem(0), d2);
assertSame("insert(0) didn't push d1 over", get().getItem(1), d1);
}
public void testRemove() {
VariableAdapter adapter = get();
ArrayList<VehicleData> datas = new ArrayList<VehicleData>();
for (int i = 0; i < 10; i++) {
datas.add(new VehicleData("Test " + i, (double) i, null));
}
for (VehicleData c : datas) {
adapter.add(c);
}
assertEquals("Initial size not 10", 10, adapter.getCount());
adapter.remove(datas.get(2));
assertEquals("Final size not 9", 9, adapter.getCount());
adapter.remove(datas.get(2));
assertEquals("Duplicate remove removed or added something?", 9, adapter.getCount());
}
}