Skip to content

Commit

Permalink
refactor: Remove needless ProjectsResponderRequestADM classes (#3008)
Browse files Browse the repository at this point in the history
  • Loading branch information
seakayone committed Jan 30, 2024
1 parent 34d2d7a commit 1468d2c
Show file tree
Hide file tree
Showing 6 changed files with 158 additions and 283 deletions.
Expand Up @@ -24,7 +24,6 @@ import org.knora.webapi.messages.OntologyConstants
import org.knora.webapi.messages.admin.responder.permissionsmessages.*
import org.knora.webapi.messages.admin.responder.projectsmessages.ProjectIdentifierADM.*
import org.knora.webapi.messages.admin.responder.projectsmessages.*
import org.knora.webapi.messages.admin.responder.usersmessages.UserInformationTypeADM
import org.knora.webapi.routing.UnsafeZioRun
import org.knora.webapi.sharedtestdata.SharedTestDataADM
import org.knora.webapi.slice.admin.api.model.ProjectsEndpointsRequestsAndResponses.ProjectCreateRequest
Expand All @@ -43,9 +42,7 @@ class ProjectsResponderADMSpec extends CoreSpec with ImplicitSender {
"The ProjectsResponderADM" when {
"used to query for project information" should {
"return information for every project excluding system projects" in {
appActor ! ProjectsGetRequestADM()

val received = expectMsgType[ProjectsGetResponseADM](timeout)
val received = UnsafeZioRun.runOrThrow(ProjectsResponderADM.getNonSystemProjects)
assert(received.projects.contains(SharedTestDataADM.imagesProject))
assert(received.projects.contains(SharedTestDataADM.incunabulaProject))
assert(!received.projects.map(_.id).contains(SharedTestDataADM.systemProjectIri))
Expand Down Expand Up @@ -106,9 +103,7 @@ class ProjectsResponderADMSpec extends CoreSpec with ImplicitSender {
"return restricted view settings using project IRI" in {
val actual = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectRestrictedViewSettingsGetADM(
IriIdentifier
.fromString(SharedTestDataADM.imagesProject.id)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage))
IriIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.id)
)
)
actual shouldEqual Some(expectedResult)
Expand All @@ -117,9 +112,7 @@ class ProjectsResponderADMSpec extends CoreSpec with ImplicitSender {
"return restricted view settings using project SHORTNAME" in {
val actual = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectRestrictedViewSettingsGetADM(
ShortnameIdentifier
.fromString(SharedTestDataADM.imagesProject.shortname)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage))
ShortnameIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.shortname)
)
)
actual shouldEqual Some(expectedResult)
Expand All @@ -137,31 +130,23 @@ class ProjectsResponderADMSpec extends CoreSpec with ImplicitSender {
"return 'NotFoundException' when the project IRI is unknown" in {
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectRestrictedViewSettingsGetRequestADM(
IriIdentifier
.fromString(notExistingProjectButValidProjectIri)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage))
IriIdentifier.unsafeFrom(notExistingProjectButValidProjectIri)
)
)
assertFailsWithA[NotFoundException](exit, s"Project '$notExistingProjectButValidProjectIri' not found.")
}

"return 'NotFoundException' when the project SHORTCODE is unknown" in {
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectRestrictedViewSettingsGetRequestADM(
ShortcodeIdentifier
.fromString("9999")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage))
)
ProjectsResponderADM.projectRestrictedViewSettingsGetRequestADM(ShortcodeIdentifier.unsafeFrom("9999"))
)
assertFailsWithA[NotFoundException](exit, s"Project '9999' not found.")
}

"return 'NotFoundException' when the project SHORTNAME is unknown" in {
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectRestrictedViewSettingsGetRequestADM(
ShortnameIdentifier
.fromString("wrongshortname")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage))
ShortnameIdentifier.unsafeFrom("wrongshortname")
)
)
assertFailsWithA[NotFoundException](exit, s"Project 'wrongshortname' not found.")
Expand Down Expand Up @@ -423,208 +408,199 @@ class ProjectsResponderADMSpec extends CoreSpec with ImplicitSender {

"used to query members" should {
"return all members of a project identified by IRI" in {
appActor ! ProjectMembersGetRequestADM(
IriIdentifier
.fromString(SharedTestDataADM.imagesProject.id)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
SharedTestDataADM.rootUser
val actual = UnsafeZioRun.runOrThrow(
ProjectsResponderADM
.projectMembersGetRequestADM(
IriIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.id),
SharedTestDataADM.rootUser
)
)
val received: ProjectMembersGetResponseADM = expectMsgType[ProjectMembersGetResponseADM](timeout)
val members = received.members

val members = actual.members
members.size should be(4)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Restricted),
SharedTestDataADM.imagesUser02.ofType(UserInformationTypeADM.Restricted),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Restricted),
SharedTestDataADM.imagesReviewerUser.ofType(UserInformationTypeADM.Restricted)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.imagesUser02.id,
SharedTestDataADM.multiuserUser.id,
SharedTestDataADM.imagesReviewerUser.id
)
}

"return all members of a project identified by shortname" in {
appActor ! ProjectMembersGetRequestADM(
ShortnameIdentifier
.fromString(SharedTestDataADM.imagesProject.shortname)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val actual = UnsafeZioRun.runOrThrow(
ProjectsResponderADM
.projectMembersGetRequestADM(
ShortnameIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.shortname),
SharedTestDataADM.rootUser
)
)
val received: ProjectMembersGetResponseADM = expectMsgType[ProjectMembersGetResponseADM](timeout)
val members = received.members

val members = actual.members
members.size should be(4)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.imagesUser02.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.imagesReviewerUser.ofType(UserInformationTypeADM.Short)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.imagesUser02.id,
SharedTestDataADM.multiuserUser.id,
SharedTestDataADM.imagesReviewerUser.id
)
}

"return all members of a project identified by shortcode" in {
appActor ! ProjectMembersGetRequestADM(
ShortcodeIdentifier
.fromString(SharedTestDataADM.imagesProject.shortcode)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val actual = UnsafeZioRun.runOrThrow(
ProjectsResponderADM
.projectMembersGetRequestADM(
ShortcodeIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.shortcode),
SharedTestDataADM.rootUser
)
)
val received: ProjectMembersGetResponseADM = expectMsgType[ProjectMembersGetResponseADM](timeout)
val members = received.members

val members = actual.members
members.size should be(4)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.imagesUser02.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.imagesReviewerUser.ofType(UserInformationTypeADM.Short)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.imagesUser02.id,
SharedTestDataADM.multiuserUser.id,
SharedTestDataADM.imagesReviewerUser.id
)
}

"return 'NotFound' when the project IRI is unknown (project membership)" in {
appActor ! ProjectMembersGetRequestADM(
IriIdentifier
.fromString(notExistingProjectButValidProjectIri)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectMembersGetRequestADM(
IriIdentifier.unsafeFrom(notExistingProjectButValidProjectIri),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project '$notExistingProjectButValidProjectIri' not found.")))
assertFailsWithA[NotFoundException](exit, s"Project '$notExistingProjectButValidProjectIri' not found.")
}

"return 'NotFound' when the project shortname is unknown (project membership)" in {
appActor ! ProjectMembersGetRequestADM(
ShortnameIdentifier
.fromString("wrongshortname")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectMembersGetRequestADM(
ShortnameIdentifier.unsafeFrom("wrongshortname"),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project 'wrongshortname' not found.")))
assertFailsWithA[NotFoundException](exit, s"Project 'wrongshortname' not found.")
}

"return 'NotFound' when the project shortcode is unknown (project membership)" in {
appActor ! ProjectMembersGetRequestADM(
ShortcodeIdentifier
.fromString("9999")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectMembersGetRequestADM(
ShortcodeIdentifier.unsafeFrom("9999"),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project '9999' not found.")))
assertFailsWithA[NotFoundException](exit, s"Project '9999' not found.")
}

"return all project admin members of a project identified by IRI" in {
appActor ! ProjectAdminMembersGetRequestADM(
IriIdentifier
.fromString(SharedTestDataADM.imagesProject.id)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
SharedTestDataADM.rootUser
val received = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
IriIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.id),
SharedTestDataADM.rootUser
)
)
val received: ProjectAdminMembersGetResponseADM = expectMsgType[ProjectAdminMembersGetResponseADM](timeout)
val members = received.members

val members = received.members
members.size should be(2)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Short)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.multiuserUser.id
)
}

"return all project admin members of a project identified by shortname" in {
appActor ! ProjectAdminMembersGetRequestADM(
ShortnameIdentifier
.fromString(SharedTestDataADM.imagesProject.shortname)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val received = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
ShortnameIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.shortname),
SharedTestDataADM.rootUser
)
)
val received: ProjectAdminMembersGetResponseADM = expectMsgType[ProjectAdminMembersGetResponseADM](timeout)
val members = received.members

val members = received.members
members.size should be(2)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Short)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.multiuserUser.id
)
}

"return all project admin members of a project identified by shortcode" in {
appActor ! ProjectAdminMembersGetRequestADM(
ShortcodeIdentifier
.fromString(SharedTestDataADM.imagesProject.shortcode)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val received = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
ShortcodeIdentifier.unsafeFrom(SharedTestDataADM.imagesProject.shortcode),
SharedTestDataADM.rootUser
)
)
val received: ProjectAdminMembersGetResponseADM = expectMsgType[ProjectAdminMembersGetResponseADM](timeout)
val members = received.members

val members = received.members
members.size should be(2)

members.map(_.id) should contain allElementsOf Seq(
SharedTestDataADM.imagesUser01.ofType(UserInformationTypeADM.Short),
SharedTestDataADM.multiuserUser.ofType(UserInformationTypeADM.Short)
).map(_.id)
SharedTestDataADM.imagesUser01.id,
SharedTestDataADM.multiuserUser.id
)
}

"return 'NotFound' when the project IRI is unknown (project admin membership)" in {
appActor ! ProjectAdminMembersGetRequestADM(
IriIdentifier
.fromString(notExistingProjectButValidProjectIri)
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
IriIdentifier.unsafeFrom(notExistingProjectButValidProjectIri),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project '$notExistingProjectButValidProjectIri' not found.")))

assertFailsWithA[NotFoundException](exit, s"Project '$notExistingProjectButValidProjectIri' not found.")
}

"return 'NotFound' when the project shortname is unknown (project admin membership)" in {
appActor ! ProjectAdminMembersGetRequestADM(
ShortnameIdentifier
.fromString("wrongshortname")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
ShortnameIdentifier.unsafeFrom("wrongshortname"),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project 'wrongshortname' not found.")))
assertFailsWithA[NotFoundException](exit, s"Project 'wrongshortname' not found.")
}

"return 'NotFound' when the project shortcode is unknown (project admin membership)" in {
appActor ! ProjectAdminMembersGetRequestADM(
ShortcodeIdentifier
.fromString("9999")
.getOrElseWith(e => throw BadRequestException(e.head.getMessage)),
requestingUser = SharedTestDataADM.rootUser
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectAdminMembersGetRequestADM(
ShortcodeIdentifier.unsafeFrom("9999"),
SharedTestDataADM.rootUser
)
)
expectMsg(Failure(NotFoundException(s"Project '9999' not found.")))
assertFailsWithA[NotFoundException](exit, s"Project '9999' not found.")
}
}

"used to query keywords" should {
"return all unique keywords for all projects" in {
appActor ! ProjectsKeywordsGetRequestADM()

val received: ProjectsKeywordsGetResponseADM = expectMsgType[ProjectsKeywordsGetResponseADM](timeout)
val received = UnsafeZioRun.runOrThrow(ProjectsResponderADM.projectsKeywordsGetRequestADM())
received.keywords.size should be(21)
}

"return all keywords for a single project" in {
appActor ! ProjectKeywordsGetRequestADM(projectIri =
ProjectIri.unsafeFrom(SharedTestDataADM.incunabulaProject.id)
val received = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectKeywordsGetRequestADM(
ProjectIri.unsafeFrom(SharedTestDataADM.incunabulaProject.id)
)
)

val received: ProjectKeywordsGetResponseADM = expectMsgType[ProjectKeywordsGetResponseADM](timeout)
received.keywords should be(SharedTestDataADM.incunabulaProject.keywords)
}

"return empty list for a project without keywords" in {
appActor ! ProjectKeywordsGetRequestADM(ProjectIri.unsafeFrom(SharedTestDataADM.dokubibProject.id))

val received: ProjectKeywordsGetResponseADM = expectMsgType[ProjectKeywordsGetResponseADM](timeout)
val received = UnsafeZioRun.runOrThrow(
ProjectsResponderADM.projectKeywordsGetRequestADM(ProjectIri.unsafeFrom(SharedTestDataADM.dokubibProject.id))
)
received.keywords should be(Seq.empty[String])
}

"return 'NotFound' when the project IRI is unknown" in {
appActor ! ProjectKeywordsGetRequestADM(ProjectIri.unsafeFrom(notExistingProjectButValidProjectIri))

expectMsg(Failure(NotFoundException(s"Project '$notExistingProjectButValidProjectIri' not found.")))
val exit = UnsafeZioRun.run(
ProjectsResponderADM.projectKeywordsGetRequestADM(ProjectIri.unsafeFrom(notExistingProjectButValidProjectIri))
)
assertFailsWithA[NotFoundException](exit, s"Project '$notExistingProjectButValidProjectIri' not found.")
}
}
}
Expand Down

0 comments on commit 1468d2c

Please sign in to comment.