public void LoggableEntity_CreatesPropertiesForAttachedEntity() { context.Dispose(); String title = model.Title; context = new TestingContext(); context.Set<Role>().Attach(model); entry = context.Entry<BaseModel>(model); entry.OriginalValues["Title"] = "Role"; entry.CurrentValues["Title"] = "Role"; entry.State = EntityState.Modified; IEnumerator<LoggableProperty> expected = new List<LoggableProperty> { new LoggableProperty(entry.Property("Title"), title) }.GetEnumerator(); IEnumerator<LoggableProperty> actual = new LoggableEntity(entry).Properties.GetEnumerator(); while (expected.MoveNext() | actual.MoveNext()) { Assert.Equal(expected.Current.IsModified, actual.Current.IsModified); Assert.Equal(expected.Current.ToString(), actual.Current.ToString()); } }
private void Logs(DbEntityEntry<BaseModel> entry) { LoggableEntity expected = new LoggableEntity(entry); logger.When(sub => sub.Log(Arg.Any<LoggableEntity>())).DoNotCallBase(); logger.When(sub => sub.Log(Arg.Any<LoggableEntity>())).Do(info => { LoggableEntity actual = info.Arg<LoggableEntity>(); Assert.Equal(expected.ToString(), actual.ToString()); Assert.Equal(expected.Action, actual.Action); Assert.Equal(expected.Name, actual.Name); Assert.Equal(expected.Id, actual.Id); }); logger.Log(new[] { entry }); logger.ReceivedWithAnyArgs().Log(expected); }
public void Log_DoesNotSave() { entry.State = EntityState.Added; LoggableEntity entity = new LoggableEntity(entry); HttpContext.Current = HttpContextFactory.CreateHttpContext(); logger.Log(entity); Assert.Empty(context.Set<AuditLog>()); }
public void Log_AddsLogToTheSet(String accountId, String identityName, String expectedAccountId) { HttpContext.Current = HttpContextFactory.CreateHttpContext(); HttpContext.Current.User.Identity.Name.Returns(identityName); LoggableEntity entity = new LoggableEntity(entry); logger = new AuditLogger(context, accountId); logger.Log(entity); AuditLog actual = context.ChangeTracker.Entries<AuditLog>().First().Entity; LoggableEntity expected = entity; Assert.Equal(expectedAccountId, actual.AccountId); Assert.Equal(expected.ToString(), actual.Changes); Assert.Equal(expected.Name, actual.EntityName); Assert.Equal(expected.Action, actual.Action); Assert.Equal(expected.Id, actual.EntityId); }
public void LoggableEntity_CreatesPropertiesForModifiedEntity() { String title = model.Title; entry.State = EntityState.Modified; entry.CurrentValues["Title"] = "Role"; entry.OriginalValues["Title"] = "Role"; IEnumerator<LoggableProperty> expected = new List<LoggableProperty> { new LoggableProperty(entry.Property("Title"), title) }.GetEnumerator(); IEnumerator<LoggableProperty> actual = new LoggableEntity(entry).Properties.GetEnumerator(); while (expected.MoveNext() | actual.MoveNext()) { Assert.Equal(expected.Current.IsModified, actual.Current.IsModified); Assert.Equal(expected.Current.ToString(), actual.Current.ToString()); } }
private void AsssertProperties(DbPropertyValues originalValues) { IEnumerable<String> properties = originalValues.PropertyNames; IEnumerator<LoggableProperty> expected = properties.Select(name => new LoggableProperty(entry.Property(name), originalValues[name])).GetEnumerator(); IEnumerator<LoggableProperty> actual = new LoggableEntity(entry).Properties.GetEnumerator(); while (expected.MoveNext() | actual.MoveNext()) { Assert.Equal(expected.Current.IsModified, actual.Current.IsModified); Assert.Equal(expected.Current.ToString(), actual.Current.ToString()); } }
public void ToString_FormsEntityChanges() { StringBuilder changes = new StringBuilder(); LoggableEntity loggableEntity = new LoggableEntity(entry); foreach (LoggableProperty property in loggableEntity.Properties) changes.AppendFormat("{0}{1}", property, Environment.NewLine); String actual = loggableEntity.ToString(); String expected = changes.ToString(); Assert.Equal(expected, actual); }
public void LoggableEntity_SetsEntityTypeNameFromProxy() { String actual = new LoggableEntity(entry).Name; String expected = typeof(Role).Name; Assert.Equal("System.Data.Entity.DynamicProxies", entry.Entity.GetType().Namespace); Assert.Equal(expected, actual); }
public void LoggableEntity_SetsEntityTypeName() { entry = context.Entry<BaseModel>(context.Set<Role>().Add(new Role())); String actual = new LoggableEntity(entry).Name; String expected = typeof(Role).Name; Assert.NotEqual("System.Data.Entity.DynamicProxies", entry.Entity.GetType().Namespace); Assert.Equal(expected, actual); }
public void LoggableEntity_SetsEntityId() { String actual = new LoggableEntity(entry).Id; String expected = model.Id; Assert.Equal(expected, actual); }
public void LoggableEntity_SetsAction() { entry.State = EntityState.Deleted; String actual = new LoggableEntity(entry).Action; String expected = entry.State.ToString(); Assert.Equal(expected, actual); }