public async Task DeleteCharityActionByKeyRequest_Handle_Returns_Null() { CharityActionContext.OpenInMemoryConnection(); try { //Arrange var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <CharityActionDeletedEvent>())).Returns(Task.FromResult(true)); DeleteCharityActionResponse response; var keyAction = Guid.NewGuid(); var wrongKey = Guid.NewGuid(); var request = new DeleteCharityActionRequest { CharityActionKey = wrongKey, }; using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = Guid.NewGuid() }; context.CharityActions.Add(new CharityAction { CharityActionKey = keyAction, UserKeys = new Collection <UserKey>() { new UserKey() { Key = Guid.NewGuid() } }, Category = Core.Enums.Category.AnimalProtection, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Charity = charity }); context.SaveChanges(); } //Act using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new DeleteCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } //Assert Assert.IsFalse(response.IsSuccess); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharitiesRequestHandler_Handle_Returns_Charities() { CharityActionContext.OpenInMemoryConnection(); try { using (var context = CharityActionContext.GetInMemoryContext()) { for (var i = 0; i < 25; i++) { context.Charities.Add(new Charity { CharityKey = Guid.NewGuid(), Name = "charity" }); } context.SaveChanges(); } GetCharitiesResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharitiesRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(new GetCharitiesRequest()); } Assert.AreEqual(25, response.Charities.Count); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharityActionByKeyRequest_Handle_Returns_Null() { CharityActionContext.OpenInMemoryConnection(); try { //Arrange using (var context = CharityActionContext.GetInMemoryContext()) { var keyAction = Guid.NewGuid(); var user = new UserKey { Key = Guid.NewGuid() }; var users = new Collection <UserKey> { user }; var charity = new Charity { CharityKey = Guid.NewGuid() }; var charityAction = new CharityAction { CharityActionKey = keyAction, UserKeys = users, Category = Core.Enums.Category.None, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Logo = "", Charity = charity }; context.Add(charityAction); context.SaveChanges(); } var request = new GetCharityActionByKeyRequest(); GetCharityActionByKeyResponse response; //Act using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharityActionByKeyRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } //Assert Assert.IsFalse(response.IsSuccess); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharityActionsRequestHandlerTests_Handle_Returns_Active_CharityActions() { CharityActionContext.OpenInMemoryConnection(); try { using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = Guid.NewGuid() }; for (var i = 0; i < 25; i++) { context.CharityActions.Add(new CharityAction { Charity = charity, ActionEndDateTime = DateTime.UtcNow - TimeSpan.FromDays(10), CharityActionKey = Guid.NewGuid() }); } for (var i = 0; i < 15; i++) { context.CharityActions.Add(new CharityAction { Charity = charity, ActionEndDateTime = DateTime.UtcNow + TimeSpan.FromDays(10), CharityActionKey = Guid.NewGuid() }); } context.SaveChanges(); } GetCharityActionsResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharityActionsRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(new GetCharityActionsRequest { OnlyActive = true, PageNumber = 2, PageSize = 10 }); } Assert.AreEqual(15, response.TotalNumberOfResults); Assert.AreEqual(5, response.Results.Count); Assert.IsTrue(response.Results.All(r => r.ActionEndDateTime > DateTime.UtcNow)); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task ApproveCharityRequest_Handle_Returns_AlreadyActive() { CharityActionContext.OpenInMemoryConnection(); try { var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <CharityActionCreatedEvent>())).Returns(Task.FromResult(true)); ApproveCharityActionResponse response; var request = new ApproveCharityActionRequest { CharityActionKey = Guid.NewGuid() }; var charity = new Charity { CharityKey = Guid.NewGuid() }; var charityAction = new CharityAction { CharityActionKey = request.CharityActionKey, IsApproved = true, Name = "0", Category = Category.AnimalProtection, IBAN = "1111-1111", CoverImage = "x", Charity = charity }; using (var context = CharityActionContext.GetInMemoryContext()) { context.CharityActions.Add(charityAction); context.SaveChanges(); } using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new ApproveCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.IsTrue(context.CharityActions.Single().IsApproved); Assert.IsFalse(response.IsSuccess); Assert.AreEqual(ErrorType.AlreadyActive, response.ErrorType); } busMock.Verify(m => m.PublishAsync(It.Is <CharityActionCreatedEvent>(e => e.CharityActionKey == request.CharityActionKey)), Times.Never); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task CreateCharityActionRequest_Handle_Returns_InvalidCharity() { CharityActionContext.OpenInMemoryConnection(); try { var keyAction = Guid.NewGuid(); var keyCharity = Guid.NewGuid(); var userRequest = new UserKey { Key = Guid.NewGuid() }; var request = new CreateCharityActionRequest { CharityActionKey = keyAction, CharityKey = keyCharity, UserKeys = new Collection <UserKey> { userRequest }, Category = Category.None, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Logo = "Test" }; using (var context = CharityActionContext.GetInMemoryContext()) { context.Charities.Add(new Charity { CharityKey = Guid.NewGuid() }); context.SaveChanges(); } CreateCharityActionResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new CreateCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(ErrorType.CharityNotFound, response.ErrorType); Assert.IsFalse(response.IsSuccess); Assert.IsFalse(context.CharityActions.Any()); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task UserUpdatedEventHandler_Consume_Updates_Name() { CharityActionContext.OpenInMemoryConnection(); try { var userUpdatedEvent = new UserUpdatedEvent { UserKey = Guid.NewGuid(), FirstName = "Ellen", LastName = "Doe", EmailAddress = "*****@*****.**", ProfileImage = "new image" }; var charity = new Charity { CharityKey = Guid.NewGuid() }; var charityAction = new CharityAction { OrganiserUserKey = userUpdatedEvent.UserKey, OrganiserUserName = "******", OrganiserImage = "old image", Charity = charity }; using (var context = CharityActionContext.GetInMemoryContext()) { context.CharityActions.Add(charityAction); context.SaveChanges(); } using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new UserUpdatedEventHandler(context); await handler.ConsumeAsync(userUpdatedEvent); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual("Ellen Doe", context.CharityActions.Single().OrganiserUserName); Assert.AreEqual("new image", context.CharityActions.Single().OrganiserImage); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task CharityUpdatedEventHandler_Handles_Event() { CharityActionContext.OpenInMemoryConnection(); try { var charityUpdatedEvent = new CharityUpdatedEvent { CharityKey = Guid.NewGuid(), Name = "newName" }; var otherKey = Guid.NewGuid(); using (var context = CharityActionContext.GetInMemoryContext()) { var charity1 = new Charity { CharityKey = charityUpdatedEvent.CharityKey, Name = "oldName" }; var charity2 = new Charity { CharityKey = otherKey, Name = "otherOldName" }; context.Charities.Add(charity1); context.Charities.Add(charity2); context.SaveChanges(); } using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new CharityUpdatedEventHandler(context); await handler.ConsumeAsync(charityUpdatedEvent); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(1, context.Charities.Count(a => a.CharityKey == charityUpdatedEvent.CharityKey && a.Name == charityUpdatedEvent.Name)); Assert.AreEqual(1, context.Charities.Count(a => a.CharityKey == otherKey && a.Name == "otherOldName")); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharityActionsRequestHandlerTests_Handle_Returns_CharityActions() { CharityActionContext.OpenInMemoryConnection(); try { using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = Guid.NewGuid() }; for (var i = 0; i < 25; i++) { context.CharityActions.Add(new CharityAction { CharityActionKey = Guid.NewGuid(), Charity = charity }); } context.SaveChanges(); } GetCharityActionsResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharityActionsRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(new GetCharityActionsRequest { PageNumber = 2, PageSize = 20 }); } Assert.AreEqual(25, response.TotalNumberOfResults); Assert.AreEqual(5, response.Results.Count); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task CharityCreatedEventHandler_Handle_Returns_Success() { CharityActionContext.OpenInMemoryConnection(); try { var Event = new CharityCreatedEvent() { Category = Core.Enums.Category.EnvironmentAndNatureConservation, CharityKey = Guid.NewGuid(), CoverImage = "No image given", Email = "*****@*****.**", IBAN = "NotReallyAnIBAN", KVKNumber = "10", Name = "TestName", Url = "test", OwnerUserName = "******", Slogan = "This is a very good testing slogan", ThankYou = "ThankYou" }; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new CharityCreatedEventHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); await handler.ConsumeAsync(Event); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(1, context.Charities.Count()); Assert.AreEqual(Event.Name, context.Charities.Single().Name); Assert.AreEqual(Event.Url, context.Charities.Single().Url); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task UpdateCharityActionRequest_Handle_Updates_Charity() { CharityActionContext.OpenInMemoryConnection(); try { //Arrange var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <CharityActionUpdatedEvent>())).Returns(Task.FromResult(true)); UpdateCharityActionResponse response; var keyAction = Guid.NewGuid(); var key = Guid.NewGuid(); var userMessenging = new Messaging.Shared.UserKey { Key = key }; var request = new UpdateCharityActionRequest { CharityActionKey = keyAction, UserKeys = new List <Messaging.Shared.UserKey> { userMessenging }, Category = Category.None, IBAN = "", Name = "", Description = "", CoverImage = "" }; using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = Guid.NewGuid() }; context.CharityActions.Add(new CharityAction { CharityActionKey = keyAction, UserKeys = new List <UserKey> { new UserKey { Key = Guid.NewGuid() } }, Category = Category.AnimalProtection, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Charity = charity }); context.SaveChanges(); } //Act using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new UpdateCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } //Assert using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(request.CharityActionKey, context.CharityActions.Single().CharityActionKey); CollectionAssert.AreEquivalent(request.UserKeys.Select(k => k.Key).ToList(), context.UserKeys.Select(u => u.Key).ToList()); Assert.AreEqual(request.Category, context.CharityActions.Single().Category); Assert.AreEqual(request.IBAN, context.CharityActions.Single().IBAN); Assert.AreEqual(request.Name, context.CharityActions.Single().Name); Assert.AreEqual(request.Description, context.CharityActions.Single().Description); Assert.AreEqual(request.CoverImage, context.CharityActions.Single().CoverImage); Assert.IsTrue(response.IsSuccess); } busMock.Verify(m => m.PublishAsync(It.Is <CharityActionUpdatedEvent>(e => e.CharityActionKey == request.CharityActionKey)), Times.Once); } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task UpdateCharityActionRequest_Handle_Returns_Null() { CharityActionContext.OpenInMemoryConnection(); try { //Arrange var busMock = new Mock <IBus>(); busMock.Setup(m => m.PublishAsync(It.IsAny <CharityActionUpdatedEvent>())).Returns(Task.FromResult(true)); UpdateCharityActionResponse response; var keyAction = Guid.NewGuid(); var wrongKey = Guid.NewGuid(); var key = Guid.NewGuid(); var userMessenging = new Messaging.Shared.UserKey { Key = key }; var request = new UpdateCharityActionRequest { CharityActionKey = wrongKey, UserKeys = new List <Messaging.Shared.UserKey>() { userMessenging }, Category = Category.None, IBAN = "", Name = "", Description = "", CoverImage = "" }; using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = Guid.NewGuid() }; context.CharityActions.Add(new CharityAction { CharityActionKey = keyAction, UserKeys = new List <UserKey> { new UserKey { Key = Guid.NewGuid() } }, Category = Category.AnimalProtection, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Charity = charity }); context.SaveChanges(); } //Act using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new UpdateCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()), busMock.Object); response = await handler.Handle(request); } //Assert using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(ErrorType.NotFound, response.ErrorType); Assert.IsFalse(response.IsSuccess); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task CreateCharityActionRequest_Handle_Returns_Success() { CharityActionContext.OpenInMemoryConnection(); try { var keyAction = Guid.NewGuid(); var keyCharity = Guid.NewGuid(); var userRequest = new UserKey { Key = Guid.NewGuid() }; var request = new CreateCharityActionRequest { CharityActionKey = keyAction, CharityKey = keyCharity, UserKeys = new Collection <UserKey> { userRequest }, Category = Category.None, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Logo = "Test" }; using (var context = CharityActionContext.GetInMemoryContext()) { context.Charities.Add(new Charity { CharityKey = keyCharity }); context.SaveChanges(); } CreateCharityActionResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new CreateCharityActionRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(request.CharityActionKey, context.CharityActions.Single().CharityActionKey); Assert.AreEqual(request.CharityKey, context.CharityActions.Include(c => c.Charity).Single().Charity.CharityKey); CollectionAssert.AreEquivalent(request.UserKeys.Select(k => k.Key).ToList(), context.UserKeys.Select(u => u.Key).ToList()); Assert.AreEqual(request.Category, context.CharityActions.Single().Category); Assert.AreEqual(request.IBAN, context.CharityActions.Single().IBAN); Assert.AreEqual(request.Name, context.CharityActions.Single().Name); Assert.AreEqual(request.Description, context.CharityActions.Single().Description); Assert.AreEqual(request.CoverImage, context.CharityActions.Single().CoverImage); Assert.AreEqual(request.Logo, context.CharityActions.Single().Logo); Assert.IsFalse(context.CharityActions.Single().IsApproved); Assert.IsTrue(response.IsSuccess); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharityActionByUrlRequestHandler_Handle_Returns_CharityAction() { CharityActionContext.OpenInMemoryConnection(); try { //Arrange var keyAction = Guid.NewGuid(); var charityKey = Guid.NewGuid(); var key = Guid.NewGuid(); var user = new UserKey { Key = key }; using (var context = CharityActionContext.GetInMemoryContext()) { var charity = new Charity { CharityKey = charityKey, Url = "some" }; var charityAction = new CharityAction { CharityActionKey = keyAction, UserKeys = new List <UserKey> { user }, Category = Core.Enums.Category.None, IBAN = "", Name = "", Description = "0-IBAN", CoverImage = "", Logo = "test", Charity = charity, UrlComponent = "none" }; context.UserKeys.Add(user); context.CharityActions.Add(charityAction); context.SaveChanges(); } var request = new GetCharityActionByUrlRequest { CharityUrl = "some", CharityActionUrlComponent = "none" }; GetCharityActionByUrlResponse response; //Act using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharityActionByUrlRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } //Assert using (var context = CharityActionContext.GetInMemoryContext()) { Assert.AreEqual(response.CharityAction.CharityActionKey, context.CharityActions.Single().CharityActionKey); Assert.AreEqual(response.CharityAction.CharityKey, charityKey); CollectionAssert.AreEquivalent(response.CharityAction.UserKeys.Select(k => k.Key).ToList(), context.UserKeys.Select(u => u.Key).ToList()); Assert.AreEqual(response.CharityAction.Category, context.CharityActions.Single().Category); Assert.AreEqual(response.CharityAction.IBAN, context.CharityActions.Single().IBAN); Assert.AreEqual(response.CharityAction.Name, context.CharityActions.Single().Name); Assert.AreEqual(response.CharityAction.Description, context.CharityActions.Single().Description); Assert.AreEqual(response.CharityAction.CoverImage, context.CharityActions.Single().CoverImage); Assert.AreEqual(response.CharityAction.Logo, context.CharityActions.Single().Logo); Assert.IsTrue(response.IsSuccess); } } finally { CharityActionContext.CloseInMemoryConnection(); } }
public async Task GetCharityActionsRequestHandlerTests_Handle_Returns_Filtered_CharityActions() { CharityActionContext.OpenInMemoryConnection(); try { var charityKey = Guid.NewGuid(); using (var context = CharityActionContext.GetInMemoryContext()) { var charity1 = new Charity { CharityKey = charityKey }; var charity2 = new Charity { CharityKey = Guid.NewGuid() }; for (var i = 0; i < 25; i++) { context.CharityActions.Add(new CharityAction { CharityActionKey = Guid.NewGuid(), Name = "this is a charity for john", Description = "doe", Category = Category.EducationAndResearch | Category.Culture, Charity = charity2 }); } for (var i = 0; i < 15; i++) { if (i % 2 == 0) { if (i % 4 == 0) { context.CharityActions.Add(new CharityAction { Charity = charity1, CharityActionKey = Guid.NewGuid(), Name = "this is a charity for john", Description = "doe", Category = Category.EducationAndResearch | Category.Culture }); } else { context.CharityActions.Add(new CharityAction { Charity = charity1, CharityActionKey = Guid.NewGuid(), Name = "this is a charity for john", Description = "doe", Category = Category.EducationAndResearch | Category.Health }); } } else { context.CharityActions.Add(new CharityAction { Charity = charity1, CharityActionKey = Guid.NewGuid() }); } } context.SaveChanges(); } GetCharityActionsResponse response; using (var context = CharityActionContext.GetInMemoryContext()) { var handler = new GetCharityActionsRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(new GetCharityActionsRequest { CharityKey = charityKey, Category = Category.EducationAndResearch | Category.Culture, Keywords = new List <string> { "john", "doe" }, PageNumber = 2, PageSize = 1 }); } Assert.AreEqual(4, response.TotalNumberOfResults); Assert.AreEqual(1, response.Results.Count); Assert.IsTrue(response.Results.All(r => r.CharityKey == charityKey && r.Category == (Category.EducationAndResearch | Category.Culture))); } finally { CharityActionContext.CloseInMemoryConnection(); } }