Linked google truth to Robolectric tests and added an example.

Bug: 31252617
Change-Id: I95aefd4809b8d292fe4cbeac903b8445e6e2a5ea
Test: Target: RunSettingsRoboTests
This commit is contained in:
Matthew Fritze
2016-09-01 17:26:41 -07:00
parent 24e673b0d2
commit 21f15a3280
2 changed files with 50 additions and 51 deletions

View File

@@ -8,7 +8,8 @@ LOCAL_SRC_FILES := $(call all-java-files-under, src)
# Include the testing libraries (JUnit4 + Robolectric libs). # Include the testing libraries (JUnit4 + Robolectric libs).
LOCAL_STATIC_JAVA_LIBRARIES := \ LOCAL_STATIC_JAVA_LIBRARIES := \
platform-system-robolectric platform-system-robolectric \
truth-prebuilt
LOCAL_JAVA_LIBRARIES := \ LOCAL_JAVA_LIBRARIES := \
junit4-target \ junit4-target \

View File

@@ -3,23 +3,24 @@ package com.android.settings.datausage;
import android.net.NetworkPolicy; import android.net.NetworkPolicy;
import android.net.NetworkTemplate; import android.net.NetworkTemplate;
import com.android.settings.TestConfig; import com.android.settings.TestConfig;
import junit.framework.Assert; import com.android.settingslib.net.DataUsageController.DataUsageInfo;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner; import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config; import org.robolectric.annotation.Config;
import static com.android.settingslib.net.DataUsageController.*; import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
public class DataUsageInfoControllerTest { public class DataUsageInfoControllerTest {
private DataUsageInfoController mInfoController; private DataUsageInfoController mInfoController;
private DataUsageInfo info; private DataUsageInfo info;
private static final int NEGATIVE = -1;
private static final int ZERO = 0;
private static final int POSITIVE_SMALL = 1;
private static final int POSITIVE_LARGE = 5;
@Before @Before
public void setUp() { public void setUp() {
@@ -27,52 +28,53 @@ public class DataUsageInfoControllerTest {
info = new DataUsageInfo(); info = new DataUsageInfo();
} }
@Test @Test
public void testLowUsageLowWarning_LimitUsed() { public void testLowUsageLowWarning_LimitUsed() {
info.warningLevel = 5; info.warningLevel = POSITIVE_SMALL;
info.limitLevel = 10; info.limitLevel = POSITIVE_LARGE;
info.usageLevel = 5; info.usageLevel = POSITIVE_SMALL;
assertEquals(mInfoController.getSummaryLimit(info), info.limitLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.limitLevel);
} }
@Test @Test
public void testLowUsageEqualWarning_LimitUsed() { public void testLowUsageEqualWarning_LimitUsed() {
info.warningLevel = 10; info.warningLevel = POSITIVE_LARGE;
info.limitLevel = 10; info.limitLevel = POSITIVE_LARGE;
info.usageLevel = 5; info.usageLevel = POSITIVE_SMALL;
assertEquals(mInfoController.getSummaryLimit(info), info.limitLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.limitLevel);
} }
@Test @Test
public void testNoLimitNoUsage_WarningUsed() { public void testNoLimitNoUsage_WarningUsed() {
info.warningLevel = 10; info.warningLevel = POSITIVE_LARGE;
info.limitLevel = 0; info.limitLevel = ZERO;
info.usageLevel = 0; info.usageLevel = ZERO;
assertEquals(mInfoController.getSummaryLimit(info), info.warningLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.warningLevel);
} }
@Test @Test
public void testNoLimitLowUsage_WarningUsed() { public void testNoLimitLowUsage_WarningUsed() {
info.warningLevel = 10; info.warningLevel = POSITIVE_LARGE;
info.limitLevel = 0; info.limitLevel = ZERO;
info.usageLevel = 5; info.usageLevel = POSITIVE_SMALL;
assertEquals(mInfoController.getSummaryLimit(info), info.warningLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.warningLevel);
} }
@Test @Test
public void testLowWarningNoLimit_UsageUsed() { public void testLowWarningNoLimit_UsageUsed() {
info.warningLevel = 5; info.warningLevel = POSITIVE_SMALL;
info.limitLevel = 0; info.limitLevel = ZERO;
info.usageLevel = 10; info.usageLevel = POSITIVE_LARGE;
assertEquals(mInfoController.getSummaryLimit(info), info.usageLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
} }
@Test @Test
public void testLowWarningLowLimit_UsageUsed() { public void testLowWarningLowLimit_UsageUsed() {
info.warningLevel = 5; info.warningLevel = POSITIVE_SMALL;
info.limitLevel = 5; info.limitLevel = POSITIVE_SMALL;
info.usageLevel = 10; info.usageLevel = POSITIVE_LARGE;
assertEquals(mInfoController.getSummaryLimit(info), info.usageLevel); assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
} }
private NetworkPolicy getDefaultNetworkPolicy() { private NetworkPolicy getDefaultNetworkPolicy() {
@@ -87,60 +89,56 @@ public class DataUsageInfoControllerTest {
@Test @Test
public void testNullArguments_NoError() { public void testNullArguments_NoError() {
try { mInfoController.updateDataLimit(null, null);
mInfoController.updateDataLimit(null, null); mInfoController.updateDataLimit(info, null);
mInfoController.updateDataLimit(info, null); mInfoController.updateDataLimit(null, getDefaultNetworkPolicy());
mInfoController.updateDataLimit(null, getDefaultNetworkPolicy());
} catch (Exception e) {
fail("Update Data Limit should drop calls with null arguments");
}
} }
@Test @Test
public void testNegativeWarning_UpdatedToZero() { public void testNegativeWarning_UpdatedToZero() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.warningBytes = -5; policy.warningBytes = NEGATIVE;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(0, info.warningLevel); assertThat(info.warningLevel).isEqualTo(ZERO);
} }
@Test @Test
public void testWarningZero_UpdatedToZero() { public void testWarningZero_UpdatedToZero() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.warningBytes = 0; policy.warningBytes = ZERO;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(0, info.warningLevel); assertThat(info.warningLevel).isEqualTo(ZERO);
} }
@Test @Test
public void testWarningPositive_UpdatedToWarning() { public void testWarningPositive_UpdatedToWarning() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.warningBytes = 5; policy.warningBytes = POSITIVE_SMALL;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(policy.warningBytes, info.warningLevel); assertThat(info.warningLevel).isEqualTo(policy.warningBytes);
} }
@Test @Test
public void testLimitNegative_UpdatedToZero() { public void testLimitNegative_UpdatedToZero() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.limitBytes = -5; policy.limitBytes = NEGATIVE;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(0, info.limitLevel); assertThat(info.limitLevel).isEqualTo(ZERO);
} }
@Test @Test
public void testLimitZero_UpdatedToZero() { public void testLimitZero_UpdatedToZero() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.limitBytes = 0; policy.limitBytes = ZERO;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(0, info.limitLevel); assertThat(info.limitLevel).isEqualTo(ZERO);
} }
@Test @Test
public void testLimitPositive_UpdatedToLimit() { public void testLimitPositive_UpdatedToLimit() {
NetworkPolicy policy = getDefaultNetworkPolicy(); NetworkPolicy policy = getDefaultNetworkPolicy();
policy.limitBytes = 5; policy.limitBytes = POSITIVE_SMALL;
mInfoController.updateDataLimit(info, policy); mInfoController.updateDataLimit(info, policy);
Assert.assertEquals(policy.limitBytes, info.limitLevel); assertThat(info.limitLevel).isEqualTo(policy.limitBytes);
} }
} }