package com.bluecove.emu.gui.model; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Observable; import java.util.Observer; import junit.framework.TestCase; import com.intel.bluetooth.emu.MonitorDevice; /** * * */ public class ModelUpdateTest extends TestCase implements Observer { private Model model; protected void setUp() throws Exception { super.setUp(); try { model = Model.instance(); model.addObserver(this); } catch (Exception e) { } } public void testUpdateDeviceList() throws IOException { List<MonitorDevice> newDevices1 = new ArrayList<MonitorDevice>(); newDevices1.add(new MonitorDeviceMock(22, "22-1", 1)); newDevices1.add(new MonitorDeviceMock(23, "23-1", 1)); newDevices1.add(new MonitorDeviceMock(24, "24-1", 1)); newDevices1.add(new MonitorDeviceMock(25, "25-1", 1)); model.updateDeviceList(newDevices1); assertEquals(4, newDevices1.size()); List<MonitorDevice> newDevices2 = new ArrayList<MonitorDevice>(); newDevices2.add(new MonitorDeviceMock(32, "32-2", 1)); newDevices2.add(new MonitorDeviceMock(23, "23-2", 1)); newDevices2.add(new MonitorDeviceMock(24, "24-2", 1)); newDevices2.add(new MonitorDeviceMock(35, "35-2", 1)); model.updateDeviceList(newDevices2); assertEquals(4, newDevices2.size()); // This is invalid tests since it depends on order in HashMap // assertEquals("23-2", // model.devices.get(0).getMonitorDevice().getDeviceDescriptor().getName()); // assertEquals("24-2", // model.devices.get(1).getMonitorDevice().getDeviceDescriptor().getName()); // assertEquals("32-2", // model.devices.get(2).getMonitorDevice().getDeviceDescriptor().getName()); // assertEquals("35-2", // model.devices.get(3).getMonitorDevice().getDeviceDescriptor().getName()); } public void update(Observable o, Object arg) { System.out.println(arg); } }