public void CRUDStateEntity() { // Insert var state = new StateEntity { }; Assert.IsTrue(!state.IsValid && !string.IsNullOrEmpty(state.ValidationMessage) && state.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_EmptyName"))); Assert.IsTrue(!state.IsValid && !string.IsNullOrEmpty(state.ValidationMessage) && state.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_EmptyCreatedBy"))); state.Name = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"; state.CreatedBy = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"; Assert.IsTrue(!state.IsValid && !string.IsNullOrEmpty(state.ValidationMessage) && state.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_MaxNameLength"))); Assert.IsTrue(!state.IsValid && !string.IsNullOrEmpty(state.ValidationMessage) && state.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_MaxCreatedByLength"))); state.Name = "New temporal state"; state.CreatedBy = "dcruz"; Assert.IsTrue(state.IsValid); Assert.IsTrue(state.IsNew); state.AcceptChanges(); Assert.IsTrue(state.IsValid); Assert.IsTrue(!state.IsChanged); var loaded = StateEntity.Load(state.ID); Assert.IsNotNull(loaded); Assert.IsTrue(!loaded.IsChanged); Assert.IsTrue(!loaded.IsNew); Compare(loaded, state); // Update loaded.Name = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"; Assert.IsTrue(!loaded.IsValid && !string.IsNullOrEmpty(loaded.ValidationMessage) && loaded.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_MaxNameLength"))); Assert.IsTrue(!loaded.IsValid && !string.IsNullOrEmpty(loaded.ValidationMessage) && loaded.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_EmptyLastUpdatedBy"))); var any = StateEntity.GetAll().Where(m => m.ID != loaded.ID).FirstOrDefault(); if (any == null) Assert.Inconclusive(); loaded.Name = any.Name; Assert.IsTrue(!loaded.IsValid && !string.IsNullOrEmpty(loaded.ValidationMessage) && loaded.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_DuplicatedName", new { loaded.Name }))); Assert.IsTrue(!loaded.IsValid && !string.IsNullOrEmpty(loaded.ValidationMessage) && loaded.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_EmptyLastUpdatedBy"))); loaded.Name = "New temporal state 2"; loaded.LastUpdatedBy = "01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"; Assert.IsTrue(!loaded.IsValid && !string.IsNullOrEmpty(loaded.ValidationMessage) && loaded.ValidationMessage.Contains(ResourceStringLoader.GetResourceString("StateEntity_MaxLastUpdatedByLength"))); loaded.LastUpdatedBy = "dcruz"; Assert.IsTrue(loaded.IsChanged); Assert.IsTrue(loaded.IsValid); loaded.AcceptChanges(); Assert.IsTrue(!loaded.IsChanged); Assert.IsTrue(loaded.IsValid); var updated = StateEntity.Load(state.ID); Assert.IsNotNull(updated); Compare(updated, loaded); // Delete loaded = StateEntity.Load(state.ID); loaded.Delete(); Assert.IsTrue(loaded.IsValid); Assert.IsTrue(loaded.IsDeleted); loaded.AcceptChanges(); loaded = StateEntity.Load(state.ID); Assert.IsNull(loaded); }