diff --git a/build.sbt b/build.sbt index a96350a..e7d6e9d 100644 --- a/build.sbt +++ b/build.sbt @@ -67,6 +67,7 @@ lazy val `mongo-support-it` = project .in(file("mongo/it")) .settings(publish / skip := true) + .settings(IWDeps.useZIO()) .dependsOn(`mongo-support`) lazy val `akka-persistence-support` = project diff --git a/build.sbt b/build.sbt index a96350a..e7d6e9d 100644 --- a/build.sbt +++ b/build.sbt @@ -67,6 +67,7 @@ lazy val `mongo-support-it` = project .in(file("mongo/it")) .settings(publish / skip := true) + .settings(IWDeps.useZIO()) .dependsOn(`mongo-support`) lazy val `akka-persistence-support` = project diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala deleted file mode 100644 index 467dd17..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,48 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: - case class ExampleMetadata(osobniCislo: String) - sealed trait ExampleCriteria - case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria - - given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen - - override def spec = suite("Mongo file repository integration spec")( - test("repo can put and read back file")( - for - repo <- ZIO - .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] - fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" - _ <- repo.put( - fname, - "Example content".getBytes(), - ExampleMetadata("10123") - ) - result <- repo.matching(ByOsobniCislo("10123")) - yield assertTrue(result.head.name == fname) - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer - : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.mongodb.scala.gridfs.GridFSBucket - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( - for - client <- ZIO.service[MongoClient] - bucket <- ZIO.attempt( - GridFSBucket(client.getDatabase("test"), "testfiles") - ) - yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( - bucket, { - _ match - case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) - } - ) - ) diff --git a/build.sbt b/build.sbt index a96350a..e7d6e9d 100644 --- a/build.sbt +++ b/build.sbt @@ -67,6 +67,7 @@ lazy val `mongo-support-it` = project .in(file("mongo/it")) .settings(publish / skip := true) + .settings(IWDeps.useZIO()) .dependsOn(`mongo-support`) lazy val `akka-persistence-support` = project diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala deleted file mode 100644 index 467dd17..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,48 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: - case class ExampleMetadata(osobniCislo: String) - sealed trait ExampleCriteria - case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria - - given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen - - override def spec = suite("Mongo file repository integration spec")( - test("repo can put and read back file")( - for - repo <- ZIO - .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] - fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" - _ <- repo.put( - fname, - "Example content".getBytes(), - ExampleMetadata("10123") - ) - result <- repo.matching(ByOsobniCislo("10123")) - yield assertTrue(result.head.name == fname) - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer - : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.mongodb.scala.gridfs.GridFSBucket - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( - for - client <- ZIO.service[MongoClient] - bucket <- ZIO.attempt( - GridFSBucket(client.getDatabase("test"), "testfiles") - ) - yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( - bucket, { - _ match - case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) - } - ) - ) diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala deleted file mode 100644 index 56ad2c3..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,46 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonRepositoryIntegrationSpec extends ZIOSpecDefault: - case class Example(id: String, value: String) - sealed trait ExampleCriteria - case object All extends ExampleCriteria - case class ById(id: String) extends ExampleCriteria - - given JsonCodec[Example] = DeriveJsonCodec.gen - - override def spec = suite("Mongo repository integration spec")( - test("repo can put and read back")( - for - repo <- ZIO - .service[MongoJsonRepository[Example, String, ExampleCriteria]] - _ <- repo.put(Example("1", "test")) - result <- repo.matching(ById("1")) - yield assertTrue(result.head.value == "test") - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer: TaskLayer[MongoJsonRepository[Example, String, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.bson.json.JsonObject - import org.mongodb.scala.bson.Document - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer { - (for - client <- ZIO.service[MongoClient] - coll <- ZIO.attempt( - client.getDatabase("test").getCollection[JsonObject]("example") - ) - yield new MongoJsonRepository[Example, String, ExampleCriteria]( - coll, { - _ match - case ById(id) => equal("id", id) - case All => Document() - }, - e => ("id", e.id) - )) - } diff --git a/build.sbt b/build.sbt index a96350a..e7d6e9d 100644 --- a/build.sbt +++ b/build.sbt @@ -67,6 +67,7 @@ lazy val `mongo-support-it` = project .in(file("mongo/it")) .settings(publish / skip := true) + .settings(IWDeps.useZIO()) .dependsOn(`mongo-support`) lazy val `akka-persistence-support` = project diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala deleted file mode 100644 index 467dd17..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,48 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: - case class ExampleMetadata(osobniCislo: String) - sealed trait ExampleCriteria - case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria - - given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen - - override def spec = suite("Mongo file repository integration spec")( - test("repo can put and read back file")( - for - repo <- ZIO - .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] - fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" - _ <- repo.put( - fname, - "Example content".getBytes(), - ExampleMetadata("10123") - ) - result <- repo.matching(ByOsobniCislo("10123")) - yield assertTrue(result.head.name == fname) - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer - : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.mongodb.scala.gridfs.GridFSBucket - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( - for - client <- ZIO.service[MongoClient] - bucket <- ZIO.attempt( - GridFSBucket(client.getDatabase("test"), "testfiles") - ) - yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( - bucket, { - _ match - case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) - } - ) - ) diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala deleted file mode 100644 index 56ad2c3..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,46 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonRepositoryIntegrationSpec extends ZIOSpecDefault: - case class Example(id: String, value: String) - sealed trait ExampleCriteria - case object All extends ExampleCriteria - case class ById(id: String) extends ExampleCriteria - - given JsonCodec[Example] = DeriveJsonCodec.gen - - override def spec = suite("Mongo repository integration spec")( - test("repo can put and read back")( - for - repo <- ZIO - .service[MongoJsonRepository[Example, String, ExampleCriteria]] - _ <- repo.put(Example("1", "test")) - result <- repo.matching(ById("1")) - yield assertTrue(result.head.value == "test") - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer: TaskLayer[MongoJsonRepository[Example, String, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.bson.json.JsonObject - import org.mongodb.scala.bson.Document - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer { - (for - client <- ZIO.service[MongoClient] - coll <- ZIO.attempt( - client.getDatabase("test").getCollection[JsonObject]("example") - ) - yield new MongoJsonRepository[Example, String, ExampleCriteria]( - coll, { - _ match - case ById(id) => equal("id", id) - case All => Document() - }, - e => ("id", e.id) - )) - } diff --git a/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala new file mode 100644 index 0000000..467dd17 --- /dev/null +++ b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala @@ -0,0 +1,48 @@ +package works.iterative.mongo + +import zio.* +import zio.test.* +import zio.json.* +import Assertion.* + +object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: + case class ExampleMetadata(osobniCislo: String) + sealed trait ExampleCriteria + case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria + + given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen + + override def spec = suite("Mongo file repository integration spec")( + test("repo can put and read back file")( + for + repo <- ZIO + .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] + fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" + _ <- repo.put( + fname, + "Example content".getBytes(), + ExampleMetadata("10123") + ) + result <- repo.matching(ByOsobniCislo("10123")) + yield assertTrue(result.head.name == fname) + ) + ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") + + val layer + : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = + import org.mongodb.scala.* + import org.mongodb.scala.model.Filters.* + import org.mongodb.scala.gridfs.GridFSBucket + MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( + for + client <- ZIO.service[MongoClient] + bucket <- ZIO.attempt( + GridFSBucket(client.getDatabase("test"), "testfiles") + ) + yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( + bucket, { + _ match + case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) + } + ) + ) diff --git a/build.sbt b/build.sbt index a96350a..e7d6e9d 100644 --- a/build.sbt +++ b/build.sbt @@ -67,6 +67,7 @@ lazy val `mongo-support-it` = project .in(file("mongo/it")) .settings(publish / skip := true) + .settings(IWDeps.useZIO()) .dependsOn(`mongo-support`) lazy val `akka-persistence-support` = project diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala deleted file mode 100644 index 467dd17..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,48 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: - case class ExampleMetadata(osobniCislo: String) - sealed trait ExampleCriteria - case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria - - given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen - - override def spec = suite("Mongo file repository integration spec")( - test("repo can put and read back file")( - for - repo <- ZIO - .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] - fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" - _ <- repo.put( - fname, - "Example content".getBytes(), - ExampleMetadata("10123") - ) - result <- repo.matching(ByOsobniCislo("10123")) - yield assertTrue(result.head.name == fname) - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer - : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.mongodb.scala.gridfs.GridFSBucket - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( - for - client <- ZIO.service[MongoClient] - bucket <- ZIO.attempt( - GridFSBucket(client.getDatabase("test"), "testfiles") - ) - yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( - bucket, { - _ match - case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) - } - ) - ) diff --git a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala b/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala deleted file mode 100644 index 56ad2c3..0000000 --- a/mongo/it/src/main/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala +++ /dev/null @@ -1,46 +0,0 @@ -package works.iterative.mongo - -import zio.* -import zio.test.* -import zio.json.* -import Assertion.* - -object MongoJsonRepositoryIntegrationSpec extends ZIOSpecDefault: - case class Example(id: String, value: String) - sealed trait ExampleCriteria - case object All extends ExampleCriteria - case class ById(id: String) extends ExampleCriteria - - given JsonCodec[Example] = DeriveJsonCodec.gen - - override def spec = suite("Mongo repository integration spec")( - test("repo can put and read back")( - for - repo <- ZIO - .service[MongoJsonRepository[Example, String, ExampleCriteria]] - _ <- repo.put(Example("1", "test")) - result <- repo.matching(ById("1")) - yield assertTrue(result.head.value == "test") - ) - ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") - - val layer: TaskLayer[MongoJsonRepository[Example, String, ExampleCriteria]] = - import org.mongodb.scala.* - import org.mongodb.scala.model.Filters.* - import org.bson.json.JsonObject - import org.mongodb.scala.bson.Document - MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer { - (for - client <- ZIO.service[MongoClient] - coll <- ZIO.attempt( - client.getDatabase("test").getCollection[JsonObject]("example") - ) - yield new MongoJsonRepository[Example, String, ExampleCriteria]( - coll, { - _ match - case ById(id) => equal("id", id) - case All => Document() - }, - e => ("id", e.id) - )) - } diff --git a/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala new file mode 100644 index 0000000..467dd17 --- /dev/null +++ b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonFileRepositoryIntegrationSpec.scala @@ -0,0 +1,48 @@ +package works.iterative.mongo + +import zio.* +import zio.test.* +import zio.json.* +import Assertion.* + +object MongoJsonFileRepositoryIntegrationSpec extends ZIOSpecDefault: + case class ExampleMetadata(osobniCislo: String) + sealed trait ExampleCriteria + case class ByOsobniCislo(osobniCislo: String) extends ExampleCriteria + + given JsonCodec[ExampleMetadata] = DeriveJsonCodec.gen + + override def spec = suite("Mongo file repository integration spec")( + test("repo can put and read back file")( + for + repo <- ZIO + .service[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] + fname = "Příliš žluťoučký kůň úpěl ďábelské ódy.txt" + _ <- repo.put( + fname, + "Example content".getBytes(), + ExampleMetadata("10123") + ) + result <- repo.matching(ByOsobniCislo("10123")) + yield assertTrue(result.head.name == fname) + ) + ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") + + val layer + : TaskLayer[MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]] = + import org.mongodb.scala.* + import org.mongodb.scala.model.Filters.* + import org.mongodb.scala.gridfs.GridFSBucket + MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer( + for + client <- ZIO.service[MongoClient] + bucket <- ZIO.attempt( + GridFSBucket(client.getDatabase("test"), "testfiles") + ) + yield new MongoJsonFileRepository[ExampleMetadata, ExampleCriteria]( + bucket, { + _ match + case ByOsobniCislo(osc) => equal("metadata.osobniCislo", osc) + } + ) + ) diff --git a/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala new file mode 100644 index 0000000..56ad2c3 --- /dev/null +++ b/mongo/it/src/test/scala/works/iterative/mongo/MongoJsonRepositoryIntegrationSpec.scala @@ -0,0 +1,46 @@ +package works.iterative.mongo + +import zio.* +import zio.test.* +import zio.json.* +import Assertion.* + +object MongoJsonRepositoryIntegrationSpec extends ZIOSpecDefault: + case class Example(id: String, value: String) + sealed trait ExampleCriteria + case object All extends ExampleCriteria + case class ById(id: String) extends ExampleCriteria + + given JsonCodec[Example] = DeriveJsonCodec.gen + + override def spec = suite("Mongo repository integration spec")( + test("repo can put and read back")( + for + repo <- ZIO + .service[MongoJsonRepository[Example, String, ExampleCriteria]] + _ <- repo.put(Example("1", "test")) + result <- repo.matching(ById("1")) + yield assertTrue(result.head.value == "test") + ) + ).provide(layer) @@ TestAspect.ifEnvSet("MONGO_URI") + + val layer: TaskLayer[MongoJsonRepository[Example, String, ExampleCriteria]] = + import org.mongodb.scala.* + import org.mongodb.scala.model.Filters.* + import org.bson.json.JsonObject + import org.mongodb.scala.bson.Document + MongoConfig.fromEnv >>> MongoClient.layer >>> ZLayer { + (for + client <- ZIO.service[MongoClient] + coll <- ZIO.attempt( + client.getDatabase("test").getCollection[JsonObject]("example") + ) + yield new MongoJsonRepository[Example, String, ExampleCriteria]( + coll, { + _ match + case ById(id) => equal("id", id) + case All => Document() + }, + e => ("id", e.id) + )) + }