public async Task After_submission__handler_returns_school_Id() { var command = new RegisterSchool.Command() { Name = "I Liceum Ogólnokształcące", City = "Gdańsk", Address = "Wały Piastowskie 6", ContactData = new[] { new ContactData() { Name = "sekretariat", EmailAddress = EmailAddress.Parse("*****@*****.**"), PhoneNumber = PhoneNumber.Parse("58 301-67-34") }, } }; var sp = new ServiceProviderBuilder().BuildServiceProvider(); using (var scope = sp.CreateScope()) { var aggregateStore = scope.ServiceProvider.GetRequiredService <IAggregateStore>(); var userAccessor = Mock.Of <IUserAccessor>( mock => mock.GetUser() == Task.FromResult(new ApplicationUser() { Id = Guid.NewGuid() }), MockBehavior.Strict); var handler = new RegisterSchoolHandler(NodaTime.SystemClock.Instance, userAccessor, aggregateStore); var result = await handler.Handle(command, CancellationToken.None); Assert.True(result.IsSuccess); Assert.IsType <Guid>(result.Value); } }
public async Task Handler_can_search_school_by_city() { Guid guid; var sp = new ServiceProviderBuilder().BuildServiceProvider(); using (var scope = sp.CreateScope()) { var userAccessor = Mock.Of <IUserAccessor>( mock => mock.GetUser() == Task.FromResult(new ApplicationUser() { Id = Guid.NewGuid() }), MockBehavior.Strict); var aggregateStore = scope.ServiceProvider.GetRequiredService <IAggregateStore>(); var handler = new RegisterSchoolHandler(NodaTime.SystemClock.Instance, userAccessor, aggregateStore); var command1 = new RegisterSchool.Command() { Name = "I Liceum Ogólnokształcące", City = "Gdańsk", Address = "Wały Piastowskie 6", ContactData = new[] { new ContactData() { Name = "sekretariat", EmailAddress = EmailAddress.Parse("*****@*****.**"), PhoneNumber = PhoneNumber.Parse("58 301-67-34") }, } }; var command2 = new RegisterSchool.Command() { Name = "III Liceum Ogólnokształcące", City = "Gdynia", Address = "Legionów 27", ContactData = new[] { new ContactData() { Name = "sekretariat", EmailAddress = EmailAddress.Parse("*****@*****.**"), PhoneNumber = PhoneNumber.Parse("(58) 622 18 33") }, } }; var result = await handler.Handle(command1, CancellationToken.None); var result2 = await handler.Handle(command2, CancellationToken.None); Assert.True(result.IsSuccess); Assert.True(result2.IsSuccess); Assert.IsType <Guid>(result.Value); guid = result.Value; } using (var scope = sp.CreateScope()) { var handler = scope.ServiceProvider.GetRequiredService <IRequestHandler <GetSchools.Query, IPagedList <GetSchools.Summary> > >(); var results = await handler.Handle(new GetSchools.Query() { SearchPattern = "gdańsk" }, CancellationToken.None); results.Should().ContainSingle() .Which.Should().BeEquivalentTo(new GetSchools.Summary() { Id = guid, Name = "I Liceum Ogólnokształcące", City = "Gdańsk", Address = "Wały Piastowskie 6", }); } }