package com.lechucksoftware.proxy.proxysettings.test; import android.content.Context; import android.net.wifi.WifiConfiguration; import android.support.test.InstrumentationRegistry; import android.support.test.runner.AndroidJUnit4; import android.test.suitebuilder.annotation.Smoke; import com.lechucksoftware.proxy.proxysettings.App; import com.lechucksoftware.proxy.proxysettings.db.PacEntity; import com.lechucksoftware.proxy.proxysettings.db.ProxyEntity; import com.lechucksoftware.proxy.proxysettings.db.WiFiAPEntity; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import be.shouldit.proxy.lib.APL; import be.shouldit.proxy.lib.WiFiApConfig; import be.shouldit.proxy.lib.reflection.android.ProxySetting; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertTrue; @RunWith(AndroidJUnit4.class) @Smoke public class DataSourceTests { private Context context; @Before public void setUp() throws Exception { context = InstrumentationRegistry.getContext(); APL.setup(context); } @After public void tearDown () throws Exception { } @Test public void testWiFiApEntityDB() throws Exception { WifiConfiguration wifiConfiguration = TestUtils.prepareFakeWifiNetwork(); ProxyEntity proxyEntity = TestUtils.createRandomHTTPProxy(); PacEntity pacProxy = TestUtils.createRandomPACProxy(); App.getDBManager().upsertProxy(proxyEntity); WiFiApConfig wiFiApConfig = APL.getWiFiAPConfiguration(wifiConfiguration); WiFiAPEntity wae1 = new WiFiAPEntity(); wae1.setSsid(wiFiApConfig.getSSID()); wae1.setSecurityType(wiFiApConfig.getSecurityType()); wae1.setProxySetting(wiFiApConfig.getProxySetting()); assertTrue(App.getDBManager().findWifiAp(wae1) == -1); WiFiAPEntity wae2 = App.getDBManager().upsertWifiAP(wae1); assertEquals(wae1,wae2); long ae3Id = App.getDBManager().findWifiAp(wiFiApConfig); assertTrue(ae3Id != -1); WiFiAPEntity wae3 = App.getDBManager().getWifiAP(ae3Id); assertEquals(wae1, wae3); wae1.setProxySetting(ProxySetting.STATIC); wae1.setProxyEntity(proxyEntity); assertTrue(!wae1.equals(wae2)); assertTrue(!wae1.equals(wae3)); WiFiAPEntity wae4 = App.getDBManager().upsertWifiAP(wae1); assertTrue(!wae1.equals(wae4)); assertEquals(wae4.getSsid(), wae4.getSsid()); assertEquals(wae4.getSecurityType(), wae4.getSecurityType()); assertEquals(wae4.getProxySetting(), wae4.getProxySetting()); assertEquals(wae4.getPacId(), wae4.getPacId()); assertEquals(wae4.getProxyId(), wae4.getProxyId()); assertTrue(!wae4.equals(wae2)); assertTrue(!wae4.equals(wae3)); long ae5Id = App.getDBManager().findWifiAp(wiFiApConfig); assertTrue(ae5Id != -1); assertEquals(ae3Id, ae5Id); WiFiAPEntity wae5 = App.getDBManager().getWifiAP(ae3Id); assertEquals(wae4,wae5); wae5.setProxySetting(ProxySetting.PAC); wae5.setPacEntity(pacProxy); WiFiAPEntity wae6 = App.getDBManager().upsertWifiAP(wae5); assertTrue(!wae5.equals(wae6)); assertEquals(wae5.getSsid(), wae6.getSsid()); assertEquals(wae5.getSecurityType(), wae6.getSecurityType()); assertEquals(wae5.getProxySetting(), wae6.getProxySetting()); assertEquals(wae5.getPacId(), wae6.getPacId()); assertEquals(wae5.getProxyId(), wae6.getProxyId()); wae6.setProxySetting(ProxySetting.NONE); wae6.setPACId(-1L); wae6.setProxyId(-1L); WiFiAPEntity wae7 = App.getDBManager().upsertWifiAP(wae6); App.getDBManager().deleteWifiAP(wae7.getId()); long ae8id = App.getDBManager().findWifiAp(wiFiApConfig); assertEquals(ae8id, -1L); } }