/*
* 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.util;
import android.test.AndroidTestCase;
import com.digi.android.wva.adapters.LogAdapter;
import com.digi.android.wva.model.VehicleData;
import com.digi.android.wva.util.VehicleDataList;
import java.util.HashSet;
import java.util.Set;
/**
* Created by mwadsten on 5/28/13.
*/
public class VehicleDataListTest extends AndroidTestCase {
@Override
protected void setUp() throws Exception {
VehicleDataList.initInstance();
// Clean out any data.
VehicleDataList.getInstance().getList().clear();
LogAdapter.initInstance(getContext());
LogAdapter.getInstance().clear();
}
public void testSetUpClears() {
assertTrue("VehicleDataList non-empty", VehicleDataList.getInstance().getList().isEmpty());
assertTrue("LogAdapter non-empty", LogAdapter.getInstance().isEmpty());
}
public void testSingle() {
VehicleDataList lis = VehicleDataList.getInstance();
LogAdapter logs = LogAdapter.getInstance();
VehicleData data = new VehicleData("Test", 1.0, null);
lis.update(data);
assertEquals("VehicleDataList size wrong", 1, lis.getList().size());
assertEquals("LogAdapter size wrong", 1, logs.getCount());
assertSame("VehicleDataList has wrong data", lis.getList().get(0), data);
}
public void testManyDifferent() {
VehicleDataList lis = VehicleDataList.getInstance();
LogAdapter logs = LogAdapter.getInstance();
String[] names = new String[]{"Apples", "Bananas", "Carrots", "Danger"};
for (int i = 0; i < names.length; i++) {
lis.update(new VehicleData(names[i], i, null));
}
assertEquals("VehicleDataList size is wrong", names.length, lis.getList().size());
assertEquals("LogAdapter size is wrong", names.length, logs.getCount());
}
public void testUpdating() {
VehicleDataList lis = VehicleDataList.getInstance();
LogAdapter logs = LogAdapter.getInstance();
Set<String> nameset = new HashSet<String>();
String[] names = new String[]
{"Apples", "Bananas", "Custard", "Daleks", "Elephants",
"Bananas", "Fish Fingers", "Gorn", "Apples", "Daleks",
"Hills", "Daleks", "Bananas", "Elephants", "Fish Fingers"};
int count = names.length;
for (int i = 0; i < count; i++) {
nameset.add(names[i]);
}
for (int i = 0; i < count; i++) {
lis.update(new VehicleData(names[i], i, null));
}
assertEquals("VehicleDataList size is wrong", nameset.size(), lis.getList().size());
assertEquals("LogAdapter size is wrong", count, logs.getCount());
}
}