Skip to content

Commit

Permalink
test organization
Browse files Browse the repository at this point in the history
  • Loading branch information
dvoet committed Feb 8, 2021
1 parent 99f5b3a commit e861d89
Showing 1 changed file with 38 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,43 @@ class ResourceRoutesV2Spec extends AnyFlatSpec with Matchers with TestSupport wi
}
}

it should "204 deleting a child resource" in {
val childResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("child"))
val currentParentResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("currentParent"))
val samRoutes = createSamRoutes(Map(defaultResourceType.name -> defaultResourceType))

setupParentRoutes(samRoutes, childResource,
currentParentOpt = Option(currentParentResource),
actionsOnChild = Set(SamResourceActions.setParent, SamResourceActions.delete))

//Delete the resource
Delete(s"/api/resources/v2/${defaultResourceType.name}/${childResource.resourceId.value}") ~> samRoutes.route ~> check {
withClue(responseAs[String]) {
status shouldEqual StatusCodes.NoContent
}
}
}

it should "400 when attempting to delete a resource with children" in {
val childResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("child"))
val parentResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("parent"))
val samRoutes = createSamRoutes(Map(defaultResourceType.name -> defaultResourceType))

setupParentRoutes(samRoutes, childResource,
currentParentOpt = Option(parentResource),
actionsOnChild = Set(SamResourceActions.setParent, SamResourceActions.delete),
actionsOnCurrentParent = Set(SamResourceActions.removeChild))

//Throw 400 exception when delete is called
when(samRoutes.resourceService.deleteResource(mockitoEq(childResource), any[SamRequestContext]))
.thenThrow(new WorkbenchExceptionWithErrorReport(ErrorReport(StatusCodes.BadRequest, "Cannot delete a resource with children. Delete the children first then try again.")))

//Delete the resource
Delete(s"/api/resources/v2/${defaultResourceType.name}/${childResource.resourceId.value}") ~> samRoutes.route ~> check {
status shouldEqual StatusCodes.BadRequest
}
}

"GET /api/resources/v2/{resourceType}" should "200" in {
val resourceType = ResourceType(ResourceTypeName("rt"), Set(SamResourceActionPatterns.readPolicies, ResourceActionPattern("can_compute", "", false)), Set(ResourceRole(ResourceRoleName("owner"), Set(SamResourceActions.readPolicies))), ResourceRoleName("owner"))
val samRoutes = TestSamRoutes(Map(resourceType.name -> resourceType))
Expand Down Expand Up @@ -1009,7 +1046,7 @@ class ResourceRoutesV2Spec extends AnyFlatSpec with Matchers with TestSupport wi
mockPermissionsForResource(samRoutes, newParent, actionsOnResource = actionsOnNewParent)
}

if (actionsOnChild.contains(SamResourceActions.delete) && actionsOnCurrentParent.contains(SamResourceActions.removeChild)) {
if (actionsOnChild.contains(SamResourceActions.delete)) {
when(samRoutes.resourceService.deleteResource(mockitoEq(childResource), any[SamRequestContext])).thenReturn(Future.unit)
}
}
Expand Down Expand Up @@ -1395,24 +1432,6 @@ class ResourceRoutesV2Spec extends AnyFlatSpec with Matchers with TestSupport wi
}
}

"DELETE /api/resources/v2/{resourceTypeName}/{resourceId}" should "204 on a child resource if the user has remove_child on the parent resource" in {
val childResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("child"))
val currentParentResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("currentParent"))
val samRoutes = createSamRoutes(Map(defaultResourceType.name -> defaultResourceType))

setupParentRoutes(samRoutes, childResource,
currentParentOpt = Option(currentParentResource),
actionsOnChild = Set(SamResourceActions.setParent, SamResourceActions.delete),
actionsOnCurrentParent = Set(SamResourceActions.removeChild))

//Delete the resource
Delete(s"/api/resources/v2/${defaultResourceType.name}/${childResource.resourceId.value}") ~> samRoutes.route ~> check {
withClue(responseAs[String]) {
status shouldEqual StatusCodes.NoContent
}
}
}

"GET /api/resources/v2/{resourceType}/{resourceId}/policies/{policyName}" should "200 on existing policy of a resource with read_policies" in {
val members = AccessPolicyMembership(Set(defaultUserInfo.userEmail), Set.empty, Set.empty, None)
val resource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("resource"))
Expand Down Expand Up @@ -1467,26 +1486,6 @@ class ResourceRoutesV2Spec extends AnyFlatSpec with Matchers with TestSupport wi
}
}

it should "400 when attempting to delete a resource with children" in {
val childResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("child"))
val parentResource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("parent"))
val samRoutes = createSamRoutes(Map(defaultResourceType.name -> defaultResourceType))

setupParentRoutes(samRoutes, childResource,
currentParentOpt = Option(parentResource),
actionsOnChild = Set(SamResourceActions.setParent, SamResourceActions.delete),
actionsOnCurrentParent = Set(SamResourceActions.removeChild))

//Throw 400 exception when delete is called
when(samRoutes.resourceService.deleteResource(mockitoEq(childResource), any[SamRequestContext]))
.thenThrow(new WorkbenchExceptionWithErrorReport(ErrorReport(StatusCodes.BadRequest, "Cannot delete a resource with children. Delete the children first then try again.")))

//Delete the resource
Delete(s"/api/resources/v2/${defaultResourceType.name}/${childResource.resourceId.value}") ~> samRoutes.route ~> check {
status shouldEqual StatusCodes.BadRequest
}
}

it should "404 on non existing policy of a resource" in {
val resource = FullyQualifiedResourceId(defaultResourceType.name, ResourceId("resource"))
val policyName = AccessPolicyName("policy")
Expand Down

0 comments on commit e861d89

Please sign in to comment.