コード例 #1
0
ファイル: StateEntityTest.cs プロジェクト: kohku/Bebeclick
        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);
        }