Exemplo n.º 1
0
        public async Task DoesNotThrowIfUserReachedMaxAfterContributing()
        {
            const string ID   = "id";
            const string USER = "******";

            var(context, mapper, config) = CreateDeps(0);
            using (context)
            {
                // seed DB
                context.Lists.Add(new List
                {
                    Id = ID
                });

                context.ListContributors.Add(new ListContributor
                {
                    ListId    = ID,
                    UserIdent = USER
                });

                context.SaveChanges();

                var request = new GetListRequest(ID, USER);
                var handler = new GetListHandler(context, mapper, config);

                var result = await handler.Handle(request, CancellationToken.None);

                Assert.IsNotNull(result);
            }
        }
Exemplo n.º 2
0
        public async Task ThrowsIfUserReachedMaxBeforeContributing()
        {
            const string ID   = "id";
            const string USER = "******";

            var(context, mapper, config) = CreateDeps(0);
            using (context)
            {
                // seed DB
                context.Lists.Add(new List
                {
                    Id = ID
                });

                context.SaveChanges();

                var request = new GetListRequest(ID, USER);
                var handler = new GetListHandler(context, mapper, config);

                try
                {
                    await handler.Handle(request, CancellationToken.None);

                    Assert.Fail("exception was not thrown");
                }
                catch (RequestFailedException e)
                {
                    Assert.AreEqual(HttpStatusCode.Forbidden, e.Code);
                }
                catch (Exception)
                {
                    Assert.Fail("didn't throw correct exception");
                }
            }
        }
Exemplo n.º 3
0
        public async Task DoesNotAddListContributorRecordForUserAndListIfAlreadyExists()
        {
            const string ID = "id", USER = "******";

            var(context, mapper, config) = CreateDeps();
            using (context)
            {
                // seed DB
                context.Lists.Add(new List
                {
                    Id = ID
                });

                context.ListContributors.Add(new ListContributor
                {
                    ListId    = ID,
                    UserIdent = USER
                });

                context.SaveChanges();

                var request = new GetListRequest(ID, USER);
                var handler = new GetListHandler(context, mapper, config);
                await handler.Handle(request, CancellationToken.None);

                Assert.AreEqual(1, context.ListContributors.Count());
                Assert.AreEqual(ID, context.ListContributors.First().ListId);
                Assert.AreEqual(USER, context.ListContributors.First().UserIdent);
            }
        }
Exemplo n.º 4
0
        public async Task ReturnsListDTOForListIgnoresIdCase()
        {
            const string ID   = "id";
            const string USER = "******";

            var(context, mapper, config) = CreateDeps();
            using (context)
            {
                // seed DB
                context.Lists.Add(new List
                {
                    Id = ID
                });

                context.SaveChanges();

                var request = new GetListRequest(ID.ToLower(), USER);
                var handler = new GetListHandler(context, mapper, config);
                var result  = await handler.Handle(request, CancellationToken.None);

                // only check it's the right one, let the mapping tests check the properties
                Assert.IsNotNull(result);
                Assert.AreEqual(ID, result.Id);
            }
        }
Exemplo n.º 5
0
        public async Task ThrowsIfNoListFound()
        {
            const string ID   = "id";
            const string USER = "******";

            var(context, mapper, config) = CreateDeps();
            using (context)
            {
                var request = new GetListRequest(ID, USER);
                var handler = new GetListHandler(context, mapper, config);
                await Assert.ThrowsExceptionAsync <RequestFailedException>(() => handler.Handle(request, CancellationToken.None));
            }
        }
Exemplo n.º 6
0
        public async Task ReturnsListDTOWithOrderedItems()
        {
            const string ID            = "id";
            const string ORDER_ONE_ID  = "1";
            const string ORDER_ZERO_ID = "0";
            const string USER          = "******";

            var(context, mapper, config) = CreateDeps();
            using (context)
            {
                // seed DB
                context.Lists.Add(new List
                {
                    Id    = ID,
                    Items = new List <ListItem>
                    {
                        new ListItem
                        {
                            Id    = ORDER_ONE_ID,
                            Order = 1
                        },
                        new ListItem
                        {
                            Id    = ORDER_ZERO_ID,
                            Order = 0
                        }
                    }
                });

                context.SaveChanges();

                var request = new GetListRequest(ID, USER);
                var handler = new GetListHandler(context, mapper, config);
                var result  = await handler.Handle(request, CancellationToken.None);

                Assert.AreEqual(ORDER_ZERO_ID, result.Items.First().Id);
                Assert.AreEqual(ORDER_ONE_ID, result.Items.ToList()[1].Id);
            }
        }