public void ItShouldTellCreateCommand() { var context = new Mock <ICustomerRepository>(); var provider = new CustomerActorProvider(Sys, context.Object); context.Setup(_ => _.CreateCustomer(It.IsAny <Customer>())); var actor = provider.Get(); actor.Tell(new CustomerCommands.CreateCustomer(1, "first", "last")); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { // redis var redisContext = new RedisContext(); var redisCustomerRepository = new RedisDb.Repositories.CustomerRepository(redisContext); // mongodb var mongoClient = new MongoClient(); var mongoDatabase = mongoClient.GetDatabase("todo-install-mongo"); var mongoCustomerRepository = new MongoDb.Repositories.CustomerRepository(mongoDatabase); // repositories var customerRepository = redisCustomerRepository; // var customerRepository = mongoCustomerRepository; services.AddSingleton <ICustomerRepository>(customerRepository); // akka.net var config = ConfigurationFactory.ParseString(GetHocon()); var actorSystem = ActorSystem.Create("clean-arch-system", config); var customerActorProvider = new CustomerActorProvider(actorSystem, customerRepository); // note(bwills): create employee repo - this is here to verify we can generate two actors var employeeActorProvider = new EmployeeActorProvider(actorSystem, customerRepository); services.AddSingleton <IActorRefFactory>(actorSystem); services.AddSingleton <ICustomerActorProvider>(customerActorProvider); services.AddSingleton <IEmployeeActorProvider>(employeeActorProvider); // mediatr services.AddTransient(typeof(IPipelineBehavior <,>), typeof(RequestPreProcessorBehavior <,>)); services.AddTransient(typeof(IPipelineBehavior <,>), typeof(RequestValidationBehavior <,>)); services.AddTransient(typeof(IPipelineBehavior <,>), typeof(RequestPerformanceBehaviour <,>)); services.AddMediatR(typeof(GetCustomerDetailQueryHandler)); // setup services .AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddFluentValidation(fv => fv.RegisterValidatorsFromAssemblyContaining <GetCustomerDetailQueryValidator>()); // swagger services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = nameof(WebApi), Version = "v1" }); }); }