Skip to content

Instantly share code, notes, and snippets.

@taketora26
taketora26 / LeaderActor.scala
Created January 27, 2022 03:09
LeaderActor.scala
package sample
import akka.actor.typed.Behavior
import akka.actor.typed.scaladsl.Behaviors
import sample.FollowerActor.ExecTask
import scala.concurrent.duration.DurationInt
object LeaderActor {
@taketora26
taketora26 / FollowerActorAsynchronousSpec.scala
Last active January 27, 2022 02:41
FollowerActorAsynchronousSpec.scala
package sample
import akka.actor.testkit.typed.scaladsl.ScalaTestWithActorTestKit
import org.mockito.MockitoSugar.{mock, when}
import org.scalatest.wordspec.AnyWordSpecLike
import sample.FollowerActor.ExecTask
import sample.LeaderActor.{Failed, Finish}
import scala.concurrent.Future
@taketora26
taketora26 / LeaderActorSynchronousSpec.scala
Last active January 27, 2022 02:37
LeaderActorSynchronousSpec
package sample
import akka.actor.testkit.typed.CapturedLogEvent
import akka.actor.testkit.typed.Effect.TimerScheduled
import akka.actor.testkit.typed.scaladsl.{
BehaviorTestKit,
ScalaTestWithActorTestKit
}
import org.scalatest.wordspec.AnyWordSpecLike
import org.slf4j.event.Level
@taketora26
taketora26 / App.scala
Created January 27, 2022 02:26
App.scala
package sample
import akka.actor.typed.ActorSystem
object App {
def main(args: Array[String]): Unit = {
ActorSystem[LeaderActor.Command](LeaderActor(Modules), "LeaderActor")
}
}
@taketora26
taketora26 / Modules.scala
Created January 27, 2022 02:24
Modules.scala
package sample
trait Modules {
val followerOperation: FollowerOperation
val leaderOperation: LeaderOperation
}
import com.softwaremill.macwire.wire
object Modules extends Modules {
@taketora26
taketora26 / FollowerActor.scala
Created January 27, 2022 02:23
FollowerActor.scala
package sample
import akka.actor.typed.{ActorRef, Behavior}
import akka.actor.typed.scaladsl.Behaviors
import sample.LeaderActor.{Failed, Finish}
import scala.concurrent.Future
import scala.util.{Failure, Success}
object FollowerActor {
@taketora26
taketora26 / LeaderActor.scala
Last active January 27, 2022 02:37
LeaderActor.scala
package sample
import akka.actor.typed.Behavior
import akka.actor.typed.scaladsl.Behaviors
import sample.FollowerActor.ExecTask
import scala.concurrent.duration.DurationInt
object LeaderActor {