package com.openxc.interfaces.network; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; import org.junit.After; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import android.content.Context; import com.openxc.sources.DataSourceException; import com.openxc.sources.DataSourceResourceException; @RunWith(RobolectricTestRunner.class) public class NetworkVehicleInterfaceTest { String goodUri = "//192.168.1.1:4000"; String missingPortUri = "//192.168.1.1"; String incorrectSchemeUri = "file://192.168.1.1:4000"; String missingPrefixUri = "192.168.2.2:5000"; NetworkVehicleInterface source; @After public void tearDown() throws Exception { if(source != null) { source.stop(); } } private Context getContext() { return RuntimeEnvironment.application; } @Test public void testValidUri() throws DataSourceException { source = new NetworkVehicleInterface(getContext(), goodUri); } @Test public void testValidateResource() { assertTrue(NetworkVehicleInterface.validateResource(goodUri)); assertFalse(NetworkVehicleInterface.validateResource(missingPortUri)); assertFalse(NetworkVehicleInterface.validateResource(incorrectSchemeUri)); assertTrue(NetworkVehicleInterface.validateResource(missingPrefixUri)); } @Test public void testResourceMatching() throws DataSourceException { source = new NetworkVehicleInterface(getContext(), goodUri); assertFalse(source.setResource(goodUri)); } @Test public void testResourceMatchingMassaged() throws DataSourceException { source = new NetworkVehicleInterface(getContext(), missingPrefixUri); assertFalse(source.setResource(missingPrefixUri)); } @Test public void testResourceChanged() throws DataSourceException { source = new NetworkVehicleInterface(getContext(), goodUri); assertTrue(source.setResource(missingPrefixUri)); } @Test public void testValidateInvalidPort() throws DataSourceException { assertFalse(NetworkVehicleInterface.validateResource("http://localhost:70000")); } @Test public void testInvalidPort() throws DataSourceException { try { source = new NetworkVehicleInterface(getContext(), "http://localhost:70000"); } catch(DataSourceResourceException e) { return; } Assert.fail("Expected a DataSourceResourceException"); } @Test public void testMalformedUri() throws DataSourceException { try { source = new NetworkVehicleInterface(getContext(), missingPortUri); } catch(DataSourceResourceException e) { return; } Assert.fail("Expected a DataSourceResourceException"); } @Test public void testUriWithBadScheme() throws DataSourceException { try { source = new NetworkVehicleInterface(getContext(), incorrectSchemeUri); } catch(DataSourceResourceException e) { return; } Assert.fail("Expected a DataSourceResourceException"); } @Test public void testMissingPrefix() throws DataSourceException { source = new NetworkVehicleInterface(getContext(), missingPrefixUri); } }