use of io.cdap.cdap.internal.provision.MockProvisioner in project cdap by caskdata.
the class ProfileHttpHandlerTest method testPutAndDeleteProfiles.
@Test
public void testPutAndDeleteProfiles() throws Exception {
Profile invalidProfile = new Profile("MyProfile", "label", "my profile for testing", new ProvisionerInfo("nonExisting", PROPERTY_SUMMARIES));
// adding a profile with non-existing provisioner should get a 400
putProfile(NamespaceId.DEFAULT.profile(invalidProfile.getName()), invalidProfile, HttpURLConnection.HTTP_BAD_REQUEST);
// put a profile with the mock provisioner
Profile expected = new Profile("MyProfile", "label", "my profile for testing", new ProvisionerInfo(MockProvisioner.NAME, PROPERTY_SUMMARIES));
ProfileId expectedProfileId = NamespaceId.DEFAULT.profile(expected.getName());
putProfile(expectedProfileId, expected, HttpURLConnection.HTTP_OK);
// get the profile
Profile actual = getProfile(expectedProfileId, HttpURLConnection.HTTP_OK).get();
Assert.assertEquals(expected, actual);
// list all profiles, should get 2 profiles
List<Profile> profiles = listProfiles(NamespaceId.DEFAULT, true, HttpURLConnection.HTTP_OK);
Set<Profile> expectedList = ImmutableSet.of(Profile.NATIVE, expected);
Assert.assertEquals(expectedList.size(), profiles.size());
Assert.assertEquals(expectedList, new HashSet<>(profiles));
// adding the same profile should still succeed
putProfile(expectedProfileId, expected, HttpURLConnection.HTTP_OK);
// get non-existing profile should get a 404
deleteProfile(NamespaceId.DEFAULT.profile("nonExisting"), HttpURLConnection.HTTP_NOT_FOUND);
// delete the profile should fail first time since it is by default enabled
deleteProfile(expectedProfileId, HttpURLConnection.HTTP_CONFLICT);
// disable the profile then delete should work
disableProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
deleteProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
Assert.assertEquals(Collections.emptyList(), listProfiles(NamespaceId.DEFAULT, false, HttpURLConnection.HTTP_OK));
// if given some unrelated json, it should return a 400 instead of 500
ProvisionerSpecification spec = new MockProvisioner().getSpec();
ProvisionerDetail test = new ProvisionerDetail(spec.getName(), spec.getLabel(), spec.getDescription(), new ArrayList<>(), null, null, false);
putProfile(NamespaceId.DEFAULT.profile(test.getName()), test, HttpURLConnection.HTTP_BAD_REQUEST);
doAs(READ_ONLY_USER_NAME, () -> {
putProfile(expectedProfileId, expected, HttpURLConnection.HTTP_FORBIDDEN);
disableProfile(expectedProfileId, HttpURLConnection.HTTP_FORBIDDEN);
enableProfile(expectedProfileId, HttpURLConnection.HTTP_FORBIDDEN);
deleteProfile(expectedProfileId, HttpURLConnection.HTTP_FORBIDDEN);
});
doAs(READ_WRITE_USER_NAME, () -> {
putProfile(expectedProfileId, expected, HttpURLConnection.HTTP_OK);
disableProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
enableProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
disableProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
deleteProfile(expectedProfileId, HttpURLConnection.HTTP_OK);
});
}
use of io.cdap.cdap.internal.provision.MockProvisioner in project cdap by caskdata.
the class ProvisionerHttpHandlerTest method testListAndGetProvisioners.
@Test
public void testListAndGetProvisioners() throws Exception {
// in unit test, we have the mock provisioners currently
ProvisionerSpecification spec = new MockProvisioner().getSpec();
ProvisionerDetail expected = new ProvisionerDetail(spec.getName(), spec.getLabel(), spec.getDescription(), new ArrayList<>(), null, null, false);
ProvisionerSpecification specWithCpus = new MockProvisionerWithCpus().getSpec();
ProvisionerDetail expectedWithCpus = new ProvisionerDetail(specWithCpus.getName(), specWithCpus.getLabel(), specWithCpus.getDescription(), new ArrayList<>(), null, null, false);
List<ProvisionerDetail> details = listProvisioners();
Assert.assertEquals(ImmutableList.of(expected, expectedWithCpus), details);
// get a non-existing provisioner should get a 404
getProvisioner("nonExisting", 404);
// get the mock provisioner
Assert.assertEquals(expected, getProvisioner(MockProvisioner.NAME, 200));
}
Aggregations