Skip to content

Commit

Permalink
* just better implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
benedeki committed Nov 30, 2024
1 parent d04d23b commit c344249
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
2 changes: 0 additions & 2 deletions reader/src/main/scala/za/co/absa/atum/reader/FlowReader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,4 @@ class FlowReader[F[_]](val mainFlowPartitioning: AtumPartitions)
(implicit serverConfig: ServerConfig, backend: SttpBackend[F, Any], ev: MonadError[F])
extends Reader[F] with PartitioningIdProvider[F]{

override def partitioning: AtumPartitions = mainFlowPartitioning

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,7 @@ import za.co.absa.atum.model.utils.JsonSyntaxExtensions.JsonSerializationSyntax
import za.co.absa.atum.reader.basic.RequestResult.RequestResult

trait PartitioningIdProvider[F[_]] {self: Reader[F] =>
def partitioning: AtumPartitions

def partitioningId()(implicit monad: MonadError[F]): F[RequestResult[Long]] = {
def partitioningId(partitioning: AtumPartitions)(implicit monad: MonadError[F]): F[RequestResult[Long]] = {
val encodedPartitioning = partitioning.toPartitioningDTO.asBase64EncodedJsonString
val queryResult = getQuery[SingleSuccessResponse[PartitioningWithIdDTO]]("/api/v2/partitionings", Map("partitioning" -> encodedPartitioning))
queryResult.map{result =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,22 @@ class PartitioningIdProviderUnitTests extends AnyFunSuiteLike {
(implicit serverConfig: ServerConfig)
extends Reader[Identity] with PartitioningIdProvider[Identity]{

override def partitioningId()(implicit monad: MonadError[Identity]): Identity[RequestResult[Long]] = super.partitioningId()
override def partitioningId(partitioning: AtumPartitions)
(implicit monad: MonadError[Identity]): Identity[RequestResult[Long]] =
super.partitioningId(partitioning)
}


test("Gets the partitioning id") {
val reader = ReaderWithPartitioningIdForTest(atumPartitionsToReply)
val response = reader.partitioningId()
val response = reader.partitioningId(atumPartitionsToReply)
val result: Long = response.getOrElse(throw new Exception("Failed to get partitioning id"))
assert(result == 1)
}

test("Not found on the partitioning id") {
val reader = ReaderWithPartitioningIdForTest(atumPartitionsToNotFound)
val result = reader.partitioningId()
val result = reader.partitioningId(atumPartitionsToNotFound)
result match {
case Right(_) => fail("Expected a failure, but OK response received")
case Left(_: DeserializationException[CirceError]) => fail("Expected a not found response, but deserialization error received")
Expand All @@ -82,9 +84,10 @@ class PartitioningIdProviderUnitTests extends AnyFunSuiteLike {
}
}

test("Failure to decode response body") {
test("Failure to decode res " +
"]ponse body") {
val reader = ReaderWithPartitioningIdForTest(atumPartitionsToFailedDecode)
val result = reader.partitioningId()
val result = reader.partitioningId(atumPartitionsToFailedDecode)
assert(result.isLeft)
result.swap.map(e => assert(e.isInstanceOf[DeserializationException[CirceError]]))
}
Expand Down

0 comments on commit c344249

Please sign in to comment.