Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
        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();
            }
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #7
0
        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();
            }
        }
Beispiel #8
0
        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 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();
            }
        }
Beispiel #12
0
        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();
            }
        }
Beispiel #13
0
 public CharityCreatedEventHandler(CharityActionContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
Beispiel #14
0
 public UserUpdatedEventHandler(CharityActionContext context)
 {
     _context = context;
 }
Beispiel #15
0
 public GetCharitiesRequestHandler(CharityActionContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
Beispiel #16
0
 public CreateCharityActionRequestHandler(CharityActionContext context, IMapper mapper)
 {
     _context = context;
     _mapper  = mapper;
 }
 public GetCharityActionByKeyRequestHandler(CharityActionContext charityActionContext, IMapper mapper)
 {
     _charityActionContext = charityActionContext;
     _mapper = mapper;
 }
        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();
            }
        }
Beispiel #19
0
        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 UpdateCharityActionRequestHandler(CharityActionContext context, IMapper mapper, IBus bus)
 {
     _context = context;
     _mapper  = mapper;
     _bus     = bus;
 }
Beispiel #21
0
        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();
            }
        }