Пример #1
0
        public async Task CreateStoryRequestHandler_Handle_Returns_InvalidUserKey()
        {
            StoryContext.OpenInMemoryConnection();

            try
            {
                var author = new User
                {
                    UserKey = Guid.NewGuid()
                };

                var charity = new Charity
                {
                    CharityKey = Guid.NewGuid()
                };

                using (var context = StoryContext.GetInMemoryContext())
                {
                    context.Users.Add(author);
                    context.Charities.Add(charity);
                    context.SaveChanges();
                }

                var request = new CreateStoryRequest
                {
                    CharityKey    = charity.CharityKey,
                    StoryKey      = Guid.NewGuid(),
                    AuthorUserKey = Guid.NewGuid(),
                    Title         = "title",
                    CoverImage    = "cover",
                    Images        = new List <string>
                    {
                        "image1",
                        "image2"
                    }
                };

                CreateStoryResponse response;
                using (var context = StoryContext.GetInMemoryContext())
                {
                    var handler = new CreateStoryRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()));
                    response = await handler.Handle(request);
                }

                using (var context = StoryContext.GetInMemoryContext())
                {
                    Assert.IsFalse(response.IsSuccess);
                    Assert.IsFalse(context.Stories.Any());
                    Assert.IsFalse(context.Images.Any());
                    Assert.AreEqual(ErrorType.InvalidUserKey, response.ErrorType);
                }
            }
            finally
            {
                StoryContext.CloseInMemoryConnection();
            }
        }
Пример #2
0
        public async Task CreateStoryRequestHandler_Handle_Returns_Success()
        {
            StoryContext.OpenInMemoryConnection();

            try
            {
                var author = new User
                {
                    UserKey = Guid.NewGuid()
                };

                var charity = new Charity
                {
                    CharityKey = Guid.NewGuid()
                };

                using (var context = StoryContext.GetInMemoryContext())
                {
                    context.Users.Add(author);
                    context.Charities.Add(charity);
                    context.SaveChanges();
                }

                var request = new CreateStoryRequest
                {
                    CharityKey    = charity.CharityKey,
                    AuthorUserKey = author.UserKey,
                    StoryKey      = Guid.NewGuid(),
                    Title         = "title",
                    CoverImage    = "cover",
                    Images        = new List <string>
                    {
                        "image1",
                        "image2"
                    }
                };

                CreateStoryResponse response;
                using (var context = StoryContext.GetInMemoryContext())
                {
                    var handler = new CreateStoryRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile()));
                    response = await handler.Handle(request);
                }

                using (var context = StoryContext.GetInMemoryContext())
                {
                    Assert.IsTrue(response.IsSuccess);
                    Assert.AreEqual(1, context.Stories.Count());
                    Assert.AreEqual(request.CoverImage, context.Stories.Single().CoverImage);
                    Assert.AreEqual(request.Title, context.Stories.Single().Title);
                    Assert.AreEqual(request.StoryKey, context.Stories.Single().StoryKey);
                    Assert.AreEqual(request.AuthorUserKey, context.Stories.IncludeAuthor().Single().Author.UserKey);
                    Assert.AreEqual(2, context.Images.Count());
                    Assert.AreEqual(2, context.Stories.IncludeImages().Single().Images.Count);
                    Assert.AreEqual(1, context.Images.Count(i => i.Base64 == "image1"));
                    Assert.AreEqual(1, context.Images.Count(i => i.Base64 == "image2"));
                }
            }
            finally
            {
                StoryContext.CloseInMemoryConnection();
            }
        }