示例#1
0
        public void Add()
        {
            // Arrange
            FakeDbContext db = new FakeDbContext();

            db.AddSet(TestData.Contacts);
            int newContactId = TestData.Contacts.Select(c => c.ContactId)
                               .DefaultIfEmpty(0).Max() + 1;
            var newContact = new Contact
            {
                ContactId    = newContactId,
                FirstName    = "Anita",
                Surname      = "Bath",
                EmailAddress = "*****@*****.**"
            };

            // Act
            db.Add(newContact);
            var addedContact = db.Find <Contact>(newContactId);

            // Assert
            Assert.AreEqual("Bath", addedContact.Surname,
                            "New contact surname check failed!!");
            Assert.AreEqual(1, db.Added.Count,
                            "New contact count check failed!!");
        }
        public void Delete_ExistingEntity_Deleted()
        {
            // Arrange
            const int id = 30;

            var dbContextOptionsBuilder = new DbContextOptionsBuilder <DbContext>().UseInMemoryDatabase(nameof(Delete_ExistingEntity_Deleted));
            var fakeDbContext           = new FakeDbContext(dbContextOptionsBuilder.Options, "dbo");
            var entity = fakeDbContext.Add(new FakeEntity {
                Id = id
            }).Entity;

            fakeDbContext.SaveChanges();

            var repository = new Repository <FakeEntity, int>(fakeDbContext);

            // Act
            repository.Delete(entity);
            fakeDbContext.SaveChanges();

            // Assert
            Assert.False(fakeDbContext.Set <FakeEntity>().Any(x => x.Id == id));
        }
        public void Update_ExistingEntity_Updated()
        {
            // Arrange
            const int id = 10;

            var dbContextOptionsBuilder = new DbContextOptionsBuilder <DbContext>().UseInMemoryDatabase(nameof(Update_ExistingEntity_Updated));
            var fakeDbContext           = new FakeDbContext(dbContextOptionsBuilder.Options, "dbo");
            var entity = fakeDbContext.Add(new FakeEntity {
                Id = id
            }).Entity;

            fakeDbContext.SaveChanges();

            var repository = new Repository <FakeEntity, int>(fakeDbContext);

            // Act
            entity = repository.Update(entity);
            fakeDbContext.SaveChanges();

            // Assert
            Assert.Equal(id, entity.Id);
        }