Example #1
0
        public async Task CreateAsyncShouldCreateCorrectly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "MembershipsCreateDb").Options;
            var dbContext = new ApplicationDbContext(options);

            var repository = new EfDeletableEntityRepository <Membership>(dbContext);

            var service = new MembershipsService(repository);

            this.InitializeMapper();

            var expectedMembership = new Membership
            {
                Id                  = 1,
                Name                = "Name",
                Price               = 50,
                Duration            = Duration.OneMonth,
                HaveATrainer        = false,
                AmountOfPeopleLimit = AmountOfPeopleLimit.One,
                VisitLimit          = VisitLimit.OnePerDay,
            };

            await service.CreateAsync(new CreateMembershipInputModel
            {
                Name                = "Name",
                Price               = 50,
                Duration            = Duration.OneMonth,
                HaveATrainer        = false,
                AmountOfPeopleLimit = AmountOfPeopleLimit.One,
                VisitLimit          = VisitLimit.OnePerDay,
            });

            var actualMembership = dbContext.Memberships.FirstOrDefault(x => x.Name == "Name");

            Assert.NotNull(actualMembership);
            Assert.Equal(expectedMembership.Id, actualMembership.Id);
            Assert.Equal(expectedMembership.Name, actualMembership.Name);
            Assert.Equal(expectedMembership.Price, actualMembership.Price);
            Assert.Equal(expectedMembership.HaveATrainer, actualMembership.HaveATrainer);
            Assert.Equal(expectedMembership.Duration, actualMembership.Duration);
            Assert.Equal(expectedMembership.AmountOfPeopleLimit, actualMembership.AmountOfPeopleLimit);
            Assert.Equal(expectedMembership.VisitLimit, actualMembership.VisitLimit);
        }