public void tracks_properties() { //setup var nameValue = Guid.NewGuid().ToString(); var entity = new Gender(); entity.Name = nameValue; var context = CreateObjectContext(); context.Genders.AddObject(entity); var objectStateEntry = context.ObjectStateManager.GetObjectStateEntry(entity); context.SaveChanges(); //act var subject = new EntityAddedAudit(objectStateEntry); subject.TrackPropertiesAfterAdd(); //assert Assert.AreNotEqual(noId, subject.EntityIdentifier); var namePropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "Name").SingleOrDefault(); Assert.IsNotNull(namePropertyAudit); Assert.AreEqual(nameValue, namePropertyAudit.NewValue); var isEnabledPropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "IsEnabled").SingleOrDefault(); Assert.IsNotNull(isEnabledPropertyAudit); Assert.AreEqual(false.ToString(), isEnabledPropertyAudit.NewValue); var versionPropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "Version").SingleOrDefault(); Assert.IsNull(versionPropertyAudit); }
public void tracks_properties_with_foreign_key() { //setup decimal openHours = 10; decimal openTime = 20; var orgUnitSchedule = new OrgUnitSchedule(); orgUnitSchedule.OpenHours = openHours; orgUnitSchedule.OpenTime = openTime; var orgUnitName = Guid.NewGuid().ToString(); var orgUnit = new OrgUnit(); orgUnit.Name = orgUnitName; orgUnitSchedule.OrgUnit = orgUnit; var context = CreateObjectContext(); context.OrgUnitSchedules.AddObject(orgUnitSchedule); var objectStateEntry = context.ObjectStateManager.GetObjectStateEntry(orgUnitSchedule); context.SaveChanges(); //act var subject = new EntityAddedAudit(objectStateEntry); subject.TrackPropertiesAfterAdd(); //assert Assert.AreNotEqual(noId, subject.EntityIdentifier); var openHoursPropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "OpenHours").SingleOrDefault(); Assert.IsNotNull(openHoursPropertyAudit); Assert.IsNull(openHoursPropertyAudit.OriginalValue); Assert.AreEqual(openHours.ToString(), openHoursPropertyAudit.NewValue); var openTimePropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "OpenTime").SingleOrDefault(); Assert.IsNotNull(openTimePropertyAudit); Assert.IsNull(openTimePropertyAudit.OriginalValue); Assert.AreEqual(openTime.ToString(), openTimePropertyAudit.NewValue); var versionPropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "Version").SingleOrDefault(); Assert.IsNull(versionPropertyAudit); var locationIdPropertyAudit = subject.AuditEntityProperties.Where(p => p.PropertyName == "OrgUnitId").SingleOrDefault(); Assert.IsNotNull(locationIdPropertyAudit); Assert.IsNull(locationIdPropertyAudit.OriginalValue); Assert.AreNotEqual(noId, locationIdPropertyAudit.NewValue); }