Esempio n. 1
0
        public void Fact_CreatingContactShouldGenerateTimestamps()
        {
            // Arrange
            var contact = new Models.Contact("John", "Smith", DateTime.Parse("01/01/1985"), "*****@*****.**");

            // Act
            dbContext.Contacts.Add(contact);
            dbContext.SaveChanges();

            // Assert
            Assert.NotNull(contact.InsertedUtc);
            Assert.NotNull(contact.UpdatedUtc);
            Assert.True(contact.InsertedUtc >= DateTime.UtcNow.AddMinutes(-5));
            Assert.True(contact.UpdatedUtc >= DateTime.UtcNow.AddMinutes(-5));
        }
        public void Fact_UpdatingContactShouldUpdateUpdatedTimestamp()
        {
            // Arrange
            var contact = new Models.Contact("John", "Smith", DateTime.Parse("01/01/1985"), "*****@*****.**");

            dbContext.Contacts.Add(contact);
            dbContext.SaveChanges();
            var initialUpdateTimeStamp = contact.UpdatedUtc;

            // Act
            contact.Surname = "Doe";
            dbContext.Contacts.Update(contact);
            dbContext.SaveChanges();

            // Assert
            Assert.True(contact.UpdatedUtc > initialUpdateTimeStamp);
        }
Esempio n. 3
0
        public void Fact_CreatingContactWithSameEmailShouldFail()
        {
            // Arrange
            var oldContact = new Models.Contact("John", "Smith", DateTime.Parse("01/01/1985"), "*****@*****.**");

            dbContext.Contacts.Add(oldContact);
            int oldChanges = dbContext.SaveChanges();

            // Act
            var newContact  = new Models.Contact("Jane", "Doe", DateTime.Parse("01/01/1992"), "*****@*****.**");
            int?newChanges  = null;
            var actualError = Assert.Throws <InvalidOperationException>(() =>
            {
                dbContext.Contacts.Add(newContact);
                newChanges = dbContext.SaveChanges();
            });

            // Assert
            Assert.True(oldChanges == 1);
            Assert.True(newChanges == null || newChanges.Value == 0);
            Assert.Contains("the same key value for {'Email'} is already being tracked", actualError.Message);
        }