use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class DynamoAppTest method appFullySerializesForCaching.
@Test
public void appFullySerializesForCaching() throws Exception {
final DynamoApp app = TestUtils.getValidApp(DynamoAppTest.class);
OAuthProvider oauthProvider = new OAuthProvider("clientId", "secret", "endpoint", OAuthProviderTest.CALLBACK_URL, null);
app.getOAuthProviders().put("myProvider", oauthProvider);
app.setAutomaticCustomEvents(ImmutableMap.of("3-days-after-enrollment", "P3D"));
app.setVersion(2L);
app.setMinSupportedAppVersions(ImmutableMap.<String, Integer>builder().put(OperatingSystem.IOS, 2).build());
app.setUploadMetadataFieldDefinitions(ImmutableList.of(new UploadFieldDefinition.Builder().withName("test-metadata-field").withType(UploadFieldType.INT).build()));
app.setAndroidAppLinks(ANDROID_APP_LINKS);
app.setAppleAppLinks(APPLE_APP_LINKS);
final JsonNode node = BridgeObjectMapper.get().valueToTree(app);
assertTrue(node.get("autoVerificationEmailSuppressed").booleanValue());
assertEqualsAndNotNull(app.getConsentNotificationEmail(), node.get("consentNotificationEmail").asText());
assertEqualsAndNotNull(app.getExporter3Configuration(), JsonUtils.asEntity(node, "exporter3Configuration", Exporter3Configuration.class));
assertFalse(node.get("participantIpLockingEnabled").booleanValue());
assertTrue(node.get("appIdExcludedInExport").booleanValue());
assertEqualsAndNotNull(app.getSupportEmail(), node.get("supportEmail").asText());
assertEqualsAndNotNull(app.getSynapseDataAccessTeamId(), node.get("synapseDataAccessTeamId").longValue());
assertEqualsAndNotNull(app.getSynapseProjectId(), node.get("synapseProjectId").textValue());
assertEqualsAndNotNull(app.getTechnicalEmail(), node.get("technicalEmail").asText());
assertEqualsAndNotNull(app.getUploadValidationStrictness().toString().toLowerCase(), node.get("uploadValidationStrictness").textValue());
assertTrue(node.get("usesCustomExportSchedule").asBoolean());
assertEqualsAndNotNull(app.getSponsorName(), node.get("sponsorName").asText());
assertEqualsAndNotNull(app.getName(), node.get("name").asText());
assertEqualsAndNotNull(app.getShortName(), node.get("shortName").textValue());
assertEqualsAndNotNull(app.isActive(), node.get("active").asBoolean());
assertEqualsAndNotNull(app.getIdentifier(), node.get("identifier").asText());
assertEqualsAndNotNull(app.getMinAgeOfConsent(), node.get("minAgeOfConsent").asInt());
assertEqualsAndNotNull(app.getPasswordPolicy(), JsonUtils.asEntity(node, "passwordPolicy", PasswordPolicy.class));
assertEqualsAndNotNull(app.getUserProfileAttributes(), JsonUtils.asStringSet(node, "userProfileAttributes"));
assertEqualsAndNotNull(app.getTaskIdentifiers(), JsonUtils.asStringSet(node, "taskIdentifiers"));
assertEqualsAndNotNull(app.getActivityEventKeys(), JsonUtils.asStringSet(node, "activityEventKeys"));
assertEqualsAndNotNull(app.getDataGroups(), JsonUtils.asStringSet(node, "dataGroups"));
assertEqualsAndNotNull(app.getVersion(), node.get("version").longValue());
assertTrue(node.get("strictUploadValidationEnabled").asBoolean());
assertTrue(node.get("healthCodeExportEnabled").asBoolean());
assertTrue(node.get("emailVerificationEnabled").asBoolean());
assertTrue(node.get("externalIdRequiredOnSignup").asBoolean());
assertTrue(node.get("emailSignInEnabled").asBoolean());
assertTrue(node.get("reauthenticationEnabled").booleanValue());
assertTrue(node.get("autoVerificationPhoneSuppressed").booleanValue());
assertTrue(node.get("verifyChannelOnSignInEnabled").booleanValue());
assertEquals(node.get("accountLimit").asInt(), 0);
assertFalse(node.get("disableExport").asBoolean());
assertEqualsAndNotNull("App", node.get("type").asText());
assertEqualsAndNotNull(app.getPushNotificationARNs().get(OperatingSystem.IOS), node.get("pushNotificationARNs").get(OperatingSystem.IOS).asText());
assertEqualsAndNotNull(app.getPushNotificationARNs().get(OperatingSystem.ANDROID), node.get("pushNotificationARNs").get(OperatingSystem.ANDROID).asText());
JsonNode automaticCustomEventsNode = node.get("automaticCustomEvents");
assertEquals(automaticCustomEventsNode.size(), 1);
assertEquals(automaticCustomEventsNode.get("3-days-after-enrollment").textValue(), "P3D");
JsonNode appleLink = node.get("appleAppLinks").get(0);
assertEquals(appleLink.get("appID").textValue(), "appId");
assertEquals(appleLink.get("paths").get(0).textValue(), "/appId/");
assertEquals(appleLink.get("paths").get(1).textValue(), "/appId/*");
JsonNode androidLink = node.get("androidAppLinks").get(0);
assertEquals(androidLink.get("namespace").textValue(), "namespace");
assertEquals(androidLink.get("package_name").textValue(), "package_name");
assertEquals(androidLink.get("sha256_cert_fingerprints").get(0).textValue(), "sha256_cert_fingerprints");
// validate minAppVersion
JsonNode supportedVersionsNode = JsonUtils.asJsonNode(node, "minSupportedAppVersions");
assertNotNull(supportedVersionsNode);
assertEqualsAndNotNull(app.getMinSupportedAppVersions().get(OperatingSystem.IOS), supportedVersionsNode.get(OperatingSystem.IOS).intValue());
// validate metadata field defs
JsonNode metadataFieldDefListNode = node.get("uploadMetadataFieldDefinitions");
assertEquals(metadataFieldDefListNode.size(), 1);
JsonNode oneMetadataFieldDefNode = metadataFieldDefListNode.get(0);
assertEquals(oneMetadataFieldDefNode.get("name").textValue(), "test-metadata-field");
assertEquals(oneMetadataFieldDefNode.get("type").textValue(), "int");
JsonNode providerNode = node.get("oAuthProviders").get("myProvider");
assertEquals(providerNode.get("clientId").textValue(), "clientId");
assertEquals(providerNode.get("secret").textValue(), "secret");
assertEquals(providerNode.get("endpoint").textValue(), "endpoint");
assertEquals(providerNode.get("callbackUrl").textValue(), OAuthProviderTest.CALLBACK_URL);
assertEquals(providerNode.get("type").textValue(), "OAuthProvider");
JsonNode defaultTemplates = node.get("defaultTemplates");
assertEquals(defaultTemplates.get("email_account_exists").textValue(), "ABC-DEF");
// Deserialize back to a POJO and verify.
final App deserApp = BridgeObjectMapper.get().readValue(node.toString(), App.class);
assertEquals(deserApp, app);
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class DynamoAppTest method uploadMetadataFieldDefListIsNeverNull.
@Test
public void uploadMetadataFieldDefListIsNeverNull() {
// make field for test
List<UploadFieldDefinition> fieldDefList = new ArrayList<>();
fieldDefList.add(new UploadFieldDefinition.Builder().withName("test-field").withType(UploadFieldType.ATTACHMENT_V2).build());
// starts as empty
App app = new DynamoApp();
assertTrue(app.getUploadMetadataFieldDefinitions().isEmpty());
// set value works
app.setUploadMetadataFieldDefinitions(fieldDefList);
assertEquals(app.getUploadMetadataFieldDefinitions(), fieldDefList);
// set to null makes it empty again
app.setUploadMetadataFieldDefinitions(null);
assertTrue(app.getUploadMetadataFieldDefinitions().isEmpty());
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class DynamoAppTest method reauthenticationEnabled.
@Test
public void reauthenticationEnabled() {
// Starts as null.
App app = App.create();
assertNull(app.isReauthenticationEnabled());
// Set to true.
app.setReauthenticationEnabled(true);
assertTrue(app.isReauthenticationEnabled());
// Set to false.
app.setReauthenticationEnabled(false);
assertFalse(app.isReauthenticationEnabled());
// Set back to null.
app.setReauthenticationEnabled(null);
assertNull(app.isReauthenticationEnabled());
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class DynamoAppTest method testThatEmptyMinSupportedVersionMapperDoesNotThrowException.
@Test
public void testThatEmptyMinSupportedVersionMapperDoesNotThrowException() throws Exception {
final DynamoApp app = TestUtils.getValidApp(DynamoAppTest.class);
app.setVersion(2L);
final String json = BridgeObjectMapper.get().writeValueAsString(app);
BridgeObjectMapper.get().readTree(json);
// Deserialize back to a POJO and verify.
final App deserApp = BridgeObjectMapper.get().readValue(json, App.class);
assertEquals(deserApp, app);
}
use of org.sagebionetworks.bridge.models.apps.App in project BridgeServer2 by Sage-Bionetworks.
the class BridgeUtilsTest method isExporter3Configured_ConfigObjectNull.
@Test
public void isExporter3Configured_ConfigObjectNull() {
App app = TestUtils.getValidApp(BridgeUtilsTest.class);
app.setExporter3Enabled(true);
app.setExporter3Configuration(null);
assertFalse(BridgeUtils.isExporter3Configured(app));
}
Aggregations