public void CreateNewEntity() { Core.Models.Db.Item Item = Ef.TempItems.First(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); var Address = NewUser.EffectiveRecord.GetOrCreateEntity<AddressEntity>(); Assert.NotNull(Address); Assert.True(Address.Dirty); Assert.False(Address.EntityID.HasValue); Assert.Equal(NewUser.EffectiveRecord.EffectiveDate, Address.EffectiveDate); }
public void SavingFields() { Core.Models.Db.Item Item = Ef.TempItems.Last(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); FieldString UserType = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>().UserType; Assert.False(UserType.Dirty); UserType.Value = "Code Monkey"; Assert.True(UserType.Dirty); UserType.PersistToDatabase(); Assert.False(UserType.Dirty); using (var db = new EntityFramework7DBContext(Ef.Configuration["Data:DefaultConnection:ConnectionString"])) { Field Field = db.Fields.Single(ef => ef.FieldID == UserType.FieldID.Value); Assert.Equal(Field.Guid, UserType.Guid); Assert.Equal("Code Monkey", UserType.Value); } UserType.Value = "Subscriber"; Assert.True(UserType.Dirty); UserType.PersistToDatabase(); Assert.False(UserType.Dirty); }
public void TestObjectField() { User User = new User(Ef.TempItems.First().ItemID.Value); var Entity = User.EffectiveRecord.CreateEntity<StaticUserDataEntity>(); Entity.Dictionary.Value = new Dictionary<string, object>() { { "TestKey", "TestValue" } }; User.PersistToDatabase(); User.Load(); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<StaticUserDataEntity>(); Assert.Equal("TestValue", (string)Entity.Dictionary.Value["TestKey"]); }
public void RetreiveEntitiesByEffectiveDate() { Core.Models.Db.Item Item = Ef.TempItems.First(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); Assert.False(NewUser.Dirty); Assert.Equal(Item.Guid, NewUser.Guid); GeneralInfoEntity GeneralEntity = NewUser.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(GeneralEntity); Assert.Equal(new DateTime(2015, 1, 1), GeneralEntity.Start_Date.Value); UserTypeEntity FirstJob = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Assert.NotNull(FirstJob); Assert.Equal("Subscriber", FirstJob.UserType.Value); NewUser.EffectiveDate = new DateTime(2015, 2, 2); UserTypeEntity SecondJob = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Assert.NotNull(SecondJob); Assert.Equal("Editor", SecondJob.UserType.Value); }
public void SaveNewField() { Core.Models.Db.Item Item = Ef.TempItems.First(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); UserTypeEntity Job = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Job.JobStartDate.Value = new DateTime(2015, 1, 1); Job.PersistToDatabase(); using (var db = new EntityFramework7DBContext(Ef.Configuration["Data:DefaultConnection:ConnectionString"])) { Ef.TempField.Add(db.Fields.Single(f => f.FieldID == Job.JobStartDate.FieldID.Value)); } NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); Job = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Assert.Equal(new DateTime(2015, 1, 1), Job.JobStartDate.Value); }
public void PersistForm() { User User = null; User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 1, 1); GeneralInfoForm Form = new GeneralInfoForm(); Form.BindTo(User); Form.PopulateForm(); Form.Effective_Date = new DateTime(2015, 4, 1); Form.GeneralInfoID = null; Form.First_Name = "Johnny"; Form.Last_Name = "Jones"; Form.PushValuesToModel(); User.PersistToDatabase(); User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 4, 1); var Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(Entity); Assert.Equal(Form.First_Name, Entity.First_Name.Value); Assert.Equal(Form.Last_Name, Entity.Last_Name.Value); User.EffectiveDate = new DateTime(2015, 1, 1); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(Entity); Assert.Equal("John", Entity.First_Name.Value); Assert.Equal("Smith", Entity.Last_Name.Value); }
public void PopulateForm() { User User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 3, 1); GeneralInfoEntity Entity = User.EffectiveRecord.CreateEntityAndApplyPolicy<GeneralInfoEntity>(CopyValuesFromPrevious: true); Entity.First_Name.Value = "Bobby"; User.PersistToDatabase(); User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 1, 1); GeneralInfoForm Form = new GeneralInfoForm() { GeneralInfoID = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>().EntityID, }; Form.BindTo(User); Form.PopulateForm(); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(Entity); Assert.Equal(Entity.First_Name.Value, Form.First_Name); Assert.Equal(Entity.Last_Name.Value, Form.Last_Name); Assert.Equal(Entity.EntityID.Value, Form.GeneralInfoID); User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 1, 1); Form = new GeneralInfoForm(); Form.BindTo(User); Form.PopulateForm(); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(Entity); Assert.Equal(Entity.First_Name.Value, Form.First_Name); Assert.Equal(Entity.Last_Name.Value, Form.Last_Name); Assert.Equal(Entity.EntityID.Value, Form.GeneralInfoID); User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 3, 1); Form = new GeneralInfoForm() { GeneralInfoID = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>().EntityID, Effective_Date = new DateTime(2015, 3, 1), }; Form.BindTo(User); Form.PopulateForm(); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(Entity); Assert.Equal(Entity.First_Name.Value, Form.First_Name); Assert.Equal(Entity.Last_Name.Value, Form.Last_Name); Assert.Equal(Entity.EntityID.Value, Form.GeneralInfoID); Assert.Equal("Bobby", Form.First_Name); }
public void MakeSureFieldFieldsArePopulated() { Core.Models.Db.Item Item = Ef.TempItems.First(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); GeneralInfoEntity GeneralEntity = NewUser.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.NotNull(GeneralEntity); Assert.NotNull(GeneralEntity.Start_Date); Assert.NotNull(GeneralEntity.Start_Date.FieldID); Assert.NotEqual(Guid.Empty, GeneralEntity.Start_Date.Guid); Assert.False(GeneralEntity.Start_Date.Dirty); Assert.Equal(Strings.Start_Date, GeneralEntity.Start_Date.Type.Name); Assert.Equal(Strings.Start_Date, GeneralEntity.Start_Date.Name); UserTypeEntity FirstJob = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Assert.NotNull(FirstJob); Assert.NotNull(FirstJob.UserType); Assert.NotNull(FirstJob.UserType.FieldID); Assert.NotEqual(Guid.Empty, FirstJob.UserType.Guid); Assert.False(FirstJob.UserType.Dirty); Assert.Equal(Strings.Job_Title, FirstJob.UserType.Type.Name); Assert.Equal(Strings.Job_Title, FirstJob.UserType.Name); NewUser.EffectiveDate = new DateTime(2015, 2, 2); UserTypeEntity SecondJob = NewUser.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>(); Assert.NotNull(SecondJob); Assert.NotNull(SecondJob.UserType); Assert.NotNull(SecondJob.UserType.FieldID); Assert.NotEqual(Guid.Empty, SecondJob.UserType.Guid); Assert.False(SecondJob.UserType.Dirty); Assert.Equal(Strings.Job_Title, SecondJob.UserType.Type.Name); Assert.Equal(Strings.Job_Title, SecondJob.UserType.Name); }
public void LoadUpItemObject() { Core.Models.Db.Item Item = Ef.TempItems.First(); User NewUser = new User(Item.ItemID.Value); NewUser.EffectiveDate = new DateTime(2015, 1, 1); Assert.Equal(Item.ItemID, NewUser.ItemID); Assert.Equal(Item.ItemTypeID, NewUser.Type.Value); Assert.Equal(3, NewUser.AllEntities.Count()); Assert.Equal(2, NewUser.EffectiveRecord.AllEntities().Count()); Assert.False(NewUser.EffectiveRecord.AllEntities().First().Dirty); Assert.False(NewUser.EffectiveRecord.AllEntities().Last().Dirty); Assert.False(NewUser.Dirty); var Record = NewUser.GetEntityCollectionForDate(new DateTime(2015, 2, 1)); Assert.Equal(2, Record.AllEntities().Count()); Assert.False(Record.AllEntities().First().Dirty); Assert.False(Record.AllEntities().Last().Dirty); }
public void EnsurePushingToModelWithNoEffectiveDateUsesNow() { User User = new User(Ef.TempItems.First().ItemID.Value); DateTime Today = DateTime.Now.Date; GeneralInfoForm GeneralInfo = new GeneralInfoForm(); GeneralInfo.BindTo(User); GeneralInfo.First_Name = "Johann"; GeneralInfo.PushValuesToModel(); User.PersistToDatabase(); User.Load(); User.EffectiveDate = DateTime.Now.Date; GeneralInfoEntity Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.Equal("Johann", Entity.First_Name.Value); Assert.Equal(Today, Entity.EffectiveDate.Date); User.EffectiveDate = new DateTime(2015, 1, 1); Entity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); Assert.Equal("John", Entity.First_Name.Value); }
public void EnsureConcurrentUpdatesDontOverwriteEachOther() { User User1 = new User(Ef.TempItems.First().ItemID.Value); User User2 = new User(Ef.TempItems.First().ItemID.Value); User1.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>().UserType.Value = "Administrator"; User2.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>().UserType.Value = "Pion"; User1.PersistToDatabase(); Assert.Throws(typeof(GuidMismatchException), () => { User2.PersistToDatabase(); }); User2.Load(); Assert.Equal("Administrator", User2.EffectiveRecord.GetFirstEntityOrDefault<UserTypeEntity>().UserType.Value); }
public void EnsureButtSplicedEntitiesDontPersist() { User User = new User(Ef.TempItems.First().ItemID.Value); User.EffectiveDate = new DateTime(2015, 6, 1); var OldEntity = User.EffectiveRecord.GetFirstEntityOrDefault<GeneralInfoEntity>(); OldEntity.EndEffectiveDate = new DateTime(2015, 7, 1); User.PersistToDatabase(); Assert.Equal(1, User.AllEntities.Count(e => e.Type == TestEntityType.General_Info)); User.Load(); Assert.Equal(1, User.AllEntities.Count(e => e.Type == TestEntityType.General_Info)); User.EffectiveDate = new DateTime(2015, 7, 1); User.EffectiveRecord.CreateEntityAndApplyPolicy<GeneralInfoEntity>(new DateTime(2015, 9, 1), CopyValuesFromPrevious: true); User.PersistToDatabase(); Assert.Equal(1, User.AllEntities.Count(e => e.Type == TestEntityType.General_Info)); User.Load(); Assert.Equal(1, User.AllEntities.Count(e => e.Type == TestEntityType.General_Info)); Assert.Equal(new DateTime(2015, 9, 1), User.AllEntities.First(e => e.Type == TestEntityType.General_Info).EndEffectiveDate); }