From 0ce336b7a33c8fb278e5596d6445c358624f404a Mon Sep 17 00:00:00 2001 From: Robin Riclet Date: Thu, 25 Feb 2021 16:35:52 +0100 Subject: [PATCH] #1264 WIP improved tests --- .../org/thp/thehive/services/CaseSrv.scala | 59 +++++++++---------- .../thp/thehive/services/CaseSrvTest.scala | 4 ++ 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/thehive/app/org/thp/thehive/services/CaseSrv.scala b/thehive/app/org/thp/thehive/services/CaseSrv.scala index ab5d8501f1..e674c31a98 100644 --- a/thehive/app/org/thp/thehive/services/CaseSrv.scala +++ b/thehive/app/org/thp/thehive/services/CaseSrv.scala @@ -1,10 +1,6 @@ package org.thp.thehive.services -import java.util.{Map => JMap} -import java.lang.{Long => JLong} import akka.actor.ActorRef - -import javax.inject.{Inject, Named, Singleton} import org.apache.tinkerpop.gremlin.process.traversal.{Order, P} import org.apache.tinkerpop.gremlin.structure.{Graph, Vertex} import org.thp.scalligraph.auth.{AuthContext, Permission} @@ -27,6 +23,9 @@ import org.thp.thehive.services.ShareOps._ import org.thp.thehive.services.TaskOps._ import play.api.libs.json.{JsNull, JsObject, Json} +import java.lang.{Long => JLong} +import java.util.{Map => JMap} +import javax.inject.{Inject, Named, Singleton} import scala.util.{Failure, Success, Try} @Singleton @@ -317,32 +316,32 @@ class CaseSrv @Inject() ( user <- userSrv.get(EntityIdOrName(authContext.userId)).getOrFail("User") orga <- organisationSrv.get(authContext.organisation).getOrFail("Organisation") richCase <- create(mergedCase, Some(user), orga, tags.toSet, Seq(), None, Seq()) - _ <- cases.toTry( - get(_) - .tasks - .richTask - .toList - .toTry(shareSrv.shareTask(_, richCase.`case`, orga)) - ) - _ <- cases.toTry( - get(_) - .observables - .richObservable - .toList - .toTry(shareSrv.shareObservable(_, richCase.`case`, orga)) - ) - _ <- cases.toTry( - get(_) - .procedure - .toList - .toTry(caseProcedureSrv.create(CaseProcedure(), richCase.`case`, _)) - ) - _ <- cases.toTry( - get(_) - .richCustomFields - .toList - .toTry(c => createCustomField(richCase.`case`, EntityIdOrName(c.customField.name), c.value, c.order)) - ) + _ <- cases.toTry { c => + for { + _ <- + get(c) + .tasks + .richTask + .toList + .toTry(shareSrv.shareTask(_, richCase.`case`, orga)) + _ <- + get(c) + .observables + .richObservable + .toList + .toTry(shareSrv.shareObservable(_, richCase.`case`, orga)) + _ <- + get(c) + .procedure + .toList + .toTry(caseProcedureSrv.create(CaseProcedure(), richCase.`case`, _)) + _ <- + get(c) + .richCustomFields + .toList + .toTry(c => createCustomField(richCase.`case`, EntityIdOrName(c.customField.name), c.value, c.order)) + } yield Success(()) + } _ = cases.map(remove(_)) } yield richCase } diff --git a/thehive/test/org/thp/thehive/services/CaseSrvTest.scala b/thehive/test/org/thp/thehive/services/CaseSrvTest.scala index ee17ae12d3..35e19022fd 100644 --- a/thehive/test/org/thp/thehive/services/CaseSrvTest.scala +++ b/thehive/test/org/thp/thehive/services/CaseSrvTest.scala @@ -427,6 +427,10 @@ class CaseSrvTest extends PlaySpecification with TestAppBuilder { mergedCase.customFields.toSeq.size mustEqual 2 mergedCase.tasks.toSeq.size mustEqual 3 mergedCase.observables.toSeq.size mustEqual 3 + + app[CaseSrv].get(EntityName("21")).getOrFail("Case") must beAFailedTry + app[CaseSrv].get(EntityName("22")).getOrFail("Case") must beAFailedTry + app[CaseSrv].get(EntityName("23")).getOrFail("Case") must beAFailedTry } } }