@Test public void invalidBaseDataRemovesBaseType() { MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("baseType", "Some.Type")); properties.add(typedProperty("baseData", "value")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check everything removed. */ assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt().getMetadata()); }
@Test public void nullProperties() { MockCommonSchemaLog log = new MockCommonSchemaLog(); CommonSchemaDataUtils.addCommonSchemaData(null, log); assertNull(log.getData()); assertNull(log.getExt()); }
@Test public void checkPartAConversionDoesNotInstantiateExtensionObjectAgain() { Log log = mock(Log.class); when(log.getDevice()).thenReturn(getDevice(0)); MockCommonSchemaLog commonSchemaLog = new MockCommonSchemaLog(); Extensions extensions = new Extensions(); commonSchemaLog.setExt(extensions); PartAUtils.addPartAFromLog(log, commonSchemaLog, "T1UUID1-T2UUID2"); assertEquals(extensions, commonSchemaLog.getExt()); }
MockCommonSchemaLog a = new MockCommonSchemaLog(); MockCommonSchemaLog b = new MockCommonSchemaLog(); checkEquals(a, b); a.setVer("a1"); checkNotEquals(a, b); b.setVer("b1"); checkNotEquals(a, b); b.setVer("a1"); checkEquals(a, b); a.setName("a2"); checkNotEquals(a, b); b.setName("b2"); checkNotEquals(a, b); b.setName("a2"); checkEquals(a, b); a.setTimestamp(new Date(0)); checkNotEquals(a, b); b.setTimestamp(new Date(1)); checkNotEquals(a, b); b.setTimestamp(new Date(0)); checkEquals(a, b); a.setPopSample(1.0); checkNotEquals(a, b); b.setPopSample(2.2); checkNotEquals(a, b);
MockCommonSchemaLog commonSchemaLog = new MockCommonSchemaLog(); commonSchemaLog.setName("test"); commonSchemaLog.setIKey("o:test"); commonSchemaLog.setTimestamp(new Date()); commonSchemaLog.setVer("3.0"); commonSchemaLog.addTransmissionTarget("test-guid"); assertEquals(commonSchemaLog.getIKey(), "o:" + targetKey);
MockCommonSchemaLog commonSchemaLog = new MockCommonSchemaLog(); PartAUtils.addPartAFromLog(log, commonSchemaLog, transmissionTarget); assertEquals("3.0", commonSchemaLog.getVer()); assertEquals(timestamp, commonSchemaLog.getTimestamp()); assertEquals("o:T1UUID1", commonSchemaLog.getIKey()); assertNotNull(commonSchemaLog.getExt()); assertNotNull(commonSchemaLog.getExt().getProtocol()); assertEquals("model", commonSchemaLog.getExt().getProtocol().getDevModel()); assertEquals("oemName", commonSchemaLog.getExt().getProtocol().getDevMake()); assertNotNull(commonSchemaLog.getExt().getUser()); assertEquals("c:alice", commonSchemaLog.getExt().getUser().getLocalId()); assertEquals("en-US", commonSchemaLog.getExt().getUser().getLocale()); assertNotNull(commonSchemaLog.getExt().getOs()); assertEquals("osName", commonSchemaLog.getExt().getOs().getName()); assertEquals("8.1.0-ABC.123-23", commonSchemaLog.getExt().getOs().getVer()); assertNotNull(commonSchemaLog.getExt().getApp()); assertEquals("1.0.0", commonSchemaLog.getExt().getApp().getVer()); assertEquals("a:com.appcenter.test", commonSchemaLog.getExt().getApp().getId()); assertNotNull(commonSchemaLog.getExt().getNet()); assertEquals("carrierName", commonSchemaLog.getExt().getNet().getProvider()); assertNotNull(commonSchemaLog.getExt().getSdk()); assertEquals("appcenter.android-1.5.0", commonSchemaLog.getExt().getSdk().getLibVer()); assertNotNull(commonSchemaLog.getExt().getLoc()); assertEquals(commonSchemaTimeZoneOffset, commonSchemaLog.getExt().getLoc().getTz()); assertEquals(Collections.singleton(transmissionTarget), commonSchemaLog.getTransmissionTargetTokens()); assertNotNull(commonSchemaLog.getExt().getDevice());
@Override public Log create() { return new MockCommonSchemaLog(); } }
@Test public void booleanTypedProperty() throws JSONException { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); BooleanTypedProperty property = new BooleanTypedProperty(); property.setName("a"); property.setValue(true); properties.add(property); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); assertTrue(log.getData().getProperties().getBoolean("a")); }
MockCommonSchemaLog log = new MockCommonSchemaLog(); assertJsonFailure(serializer, log); log.setVer("3.0"); assertJsonFailure(serializer, log); log.setName("test"); assertJsonFailure(serializer, log); log.setTimestamp(new Date()); log.setPopSample(3.1415); checkSerialization(serializer, log); log.setIKey(UUIDUtils.randomUUID().toString()); checkSerialization(serializer, log); log.setFlags(5L); checkSerialization(serializer, log); log.setCV("awXwfegr"); log.setExt(new Extensions()); checkSerialization(serializer, log); log.getExt().setMetadata(new MetadataExtension()); checkSerialization(serializer, log); log.getExt().getMetadata().getMetadata().put("f", new JSONObject()); checkSerialization(serializer, log); log.getExt().setProtocol(new ProtocolExtension()); checkSerialization(serializer, log); log.getExt().getProtocol().setTicketKeys(Arrays.asList("First", "Second")); checkSerialization(serializer, log); log.getExt().getProtocol().setDevMake("Samsung");
MockCommonSchemaLog commonSchemaLog = new MockCommonSchemaLog(); commonSchemaLog.setName("test"); commonSchemaLog.setIKey("o:test"); commonSchemaLog.setTimestamp(new Date()); commonSchemaLog.setVer("3.0"); commonSchemaLog.addTransmissionTarget("test-guid"); assertEquals(commonSchemaLog.getIKey(), "o:" + targetKey);
@Test public void emptyProperties() { MockCommonSchemaLog log = new MockCommonSchemaLog(); CommonSchemaDataUtils.addCommonSchemaData(Collections.<TypedProperty>emptyList(), log); assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt()); }
@Test public void compareDifferentType() { TestUtils.compareSelfNullClass(new MockCommonSchemaLog()); }
@Test public void baseTypeOverriddenToBeInvalid() { MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("baseType", "Some.Type")); properties.add(typedProperty("baseType.something", "test")); properties.add(typedProperty("baseData.something", "test")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check only string base type was kept. */ assertEquals(2, log.getData().getProperties().length()); assertEquals("Some.Type", log.getData().getProperties().optString("baseType")); assertNull(log.getExt().getMetadata()); } }
MockCommonSchemaLog commonSchemaLog = new MockCommonSchemaLog(); commonSchemaLog.setName("test"); commonSchemaLog.setIKey("o:test"); commonSchemaLog.setTimestamp(new Date()); commonSchemaLog.setVer("3.0"); commonSchemaLog.addTransmissionTarget("test-guid"); assertEquals(commonSchemaLog.getIKey(), "o:" + targetKey);
@Test public void emptyStringsAreAllowed() throws JSONException { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("", "")); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); assertEquals("", log.getData().getProperties().getString("")); assertNull(log.getExt()); }
private static void testValidName(String name) { CommonSchemaLog log = new MockCommonSchemaLog(); PartAUtils.setName(log, name); assertEquals(name, log.getName()); }
@Test public void invalidBaseType() { /* When using invalid base type. */ MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); LongTypedProperty a = new LongTypedProperty(); a.setName("baseType"); a.setValue(1); properties.add(a); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check data and metadata is missing type. */ assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt().getMetadata()); }
@Test() public void filterInvalidProperties() throws JSONException { MockCommonSchemaLog log = new MockCommonSchemaLog(); List<TypedProperty> properties = new ArrayList<>(); properties.add(typedProperty("a", "b")); properties.add(typedProperty(null, "c")); properties.add(typedProperty("d", null)); CommonSchemaDataUtils.addCommonSchemaData(properties, log); assertEquals(1, log.getData().getProperties().length()); assertEquals("b", log.getData().getProperties().getString("a")); assertNull(log.getExt()); }
private static void testInvalidName(String name) { CommonSchemaLog log = new MockCommonSchemaLog(); try { PartAUtils.setName(log, name); fail("Expected exception"); } catch (IllegalArgumentException e) { assertNull(log.getName()); } }
@Test public void baseTypeMissing() { /* When using invalid base data. */ MockCommonSchemaLog log = new MockCommonSchemaLog(); log.setExt(new Extensions()); List<TypedProperty> properties = new ArrayList<>(); StringTypedProperty a = new StringTypedProperty(); a.setName("baseData.test"); a.setValue("test"); properties.add(a); CommonSchemaDataUtils.addCommonSchemaData(properties, log); /* Check data and metadata is missing type. */ assertEquals(0, log.getData().getProperties().length()); assertNull(log.getExt().getMetadata()); }