示例#1
0
        public async Task ItemsLockChanged_Type_TestAsync()
        {
            var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin);

            var typeFilter       = new TypeFilter(TypeFlags.NotBeingEdited | TypeFlags.NotReferenced | TypeFlags.Public | TypeFlags.NotLocked);
            var typeItem         = (await typeFilter.GetTypeAsync(dataBase)) as ITypeItem;
            var expectedTypeItem = typeItem;
            var actualTypeItem   = null as ITypeItem;
            var comment          = RandomUtility.NextString();
            await typeContext.AddItemsLockChangedEventHandlerAsync(TypeContext_ItemsLockChanged);

            await typeItem.LockAsync(authentication, comment);

            await typeItem.UnlockAsync(authentication);

            Assert.AreEqual(expectedTypeItem, actualTypeItem);

            await typeContext.RemoveItemsLockChangedEventHandlerAsync(TypeContext_ItemsLockChanged);

            actualTypeItem = null;
            await typeItem.LockAsync(authentication, comment);

            Assert.IsNull(actualTypeItem);

            void TypeContext_ItemsLockChanged(object sender, ItemsEventArgs <ITypeItem> e)
            {
                if (e.Items.Single() is ITypeItem typeItem)
                {
                    actualTypeItem = typeItem;
                }
            }
        }
示例#2
0
        public async Task ItemsDeleted_Type_TestAsync()
        {
            var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin);

            var typeFilter1  = new TypeFilter(TypeFlags.NotBeingEdited | TypeFlags.NotReferenced);
            var typeItem1    = (await typeFilter1.GetTypeAsync(dataBase)) as ITypeItem;
            var actualPath   = string.Empty;
            var expectedPath = typeItem1.Path;
            await typeContext.AddItemsDeletedEventHandlerAsync(TypeContext_ItemsDeleted);

            await typeItem1.DeleteAsync(authentication);

            Assert.AreEqual(expectedPath, actualPath);
            await typeContext.RemoveItemsDeletedEventHandlerAsync(TypeContext_ItemsDeleted);

            var typeFilter2 = new TypeFilter(TypeFlags.NotBeingEdited | TypeFlags.NotReferenced);
            var typeItem2   = (await typeFilter2.GetTypeAsync(dataBase)) as ITypeItem;
            await typeItem2.DeleteAsync(authentication);

            Assert.AreEqual(expectedPath, actualPath);

            void TypeContext_ItemsDeleted(object sender, ItemsDeletedEventArgs <ITypeItem> e)
            {
                var typeItem = e.Items.Single();

                actualPath = e.ItemPaths.Single();
            }
        }
示例#3
0
        public async Task ItemsChanged_TestAsync()
        {
            var authentication = await this.TestContext.LoginRandomAsync(Authority.Admin);

            var typeFilter = new TypeFilter();
            var type       = await typeFilter.GetTypeAsync(dataBase);

            var actualValue   = string.Empty;
            var expectedValue = type.TypeInfo.HashValue;
            var template      = type.Template;
            await typeContext.AddItemsChangedEventHandlerAsync(TypeContext_ItemsChanged);

            await template.BeginEditAsync(authentication);

            await template.ModifyRandomMembersAsync(authentication, 5);

            await template.EndEditAsync(authentication);

            Assert.AreNotEqual(expectedValue, actualValue);
            expectedValue = actualValue;
            await typeContext.RemoveItemsChangedEventHandlerAsync(TypeContext_ItemsChanged);

            await template.BeginEditAsync(authentication);

            await template.ModifyRandomMembersAsync(authentication, 5);

            await template.EndEditAsync(authentication);

            Assert.AreEqual(expectedValue, actualValue);

            void TypeContext_ItemsChanged(object sender, ItemsEventArgs <ITypeItem> e)
            {
                if (e.Items.Single() is IType type)
                {
                    actualValue = type.TypeInfo.HashValue;
                }
            }
        }