예제 #1
0
        public async Task Delete_ItemWithInnerItems()
        {
            var rootArr = new Group[]
            {
                new Group("Test1".ToCharArray())
                {
                    InnerItems = new List <Item>()
                    {
                        new Group("Inner".ToCharArray())
                    }
                },
                new Group("Test2".ToCharArray()),
                new Group("Test3".ToCharArray())
            };

            for (int i = 0; i < rootArr.Length; i++)
            {
                await ABSRegistry.AddItemToRootAsync(rootArr[i]);
            }

            // Delete the item.
            await ABSRegistry.DeleteAsync("Test1");

            // It shouldn't exist anymore.
            Assert.IsFalse(await ABSRegistry.ExistsAsync("Test1"));
            Assert.IsFalse(await ABSRegistry.ExistsAsync("Test1/Inner"));
        }
예제 #2
0
        public async Task GetItems_MultipleParts()
        {
            var inner = new Group("Inner".ToCharArray())
            {
                InnerItems = new List <Item>()
                {
                    new Group("Final1".ToCharArray()),
                    new Group("Final2".ToCharArray()),
                }
            };

            var rootArr = new Group[]
            {
                new Group("Test1".ToCharArray())
                {
                    InnerItems = new List <Item>()
                    {
                        inner
                    }
                },
                new Group("Test2".ToCharArray()),
                new Group("Test3".ToCharArray())
            };

            for (int i = 0; i < rootArr.Length; i++)
            {
                await ABSRegistry.AddItemToRootAsync(rootArr[i]);
            }

            CollectionAssert.AreEqual(inner.InnerItems, await ABSRegistry.GetItemsAsync("Test1/Inner"));
            CollectionAssert.AreEqual(inner.InnerItems, await ABSRegistry.GetItemsAsync("/Test1/Inner"));
        }
예제 #3
0
        public async Task LocateFromPath_JustRoot()
        {
            var rootGroup = new Group("ABPaint".ToCharArray());
            await ABSRegistry.AddItemToRootAsync(rootGroup);

            Assert.AreEqual(rootGroup, await ABSRegistry.LocateFromPathAsync("/ABPaint"));
        }
예제 #4
0
        public async Task AddItemToRoot()
        {
            var groupName = "Test".ToCharArray();

            // Add the group.
            await ABSRegistry.AddItemToRootAsync(new Group(groupName));

            // Make sure that group exists.
            CollectionAssert.AreEqual(groupName, ABSRegistry.RegistryItems[0].Name);
        }
예제 #5
0
        public async Task Exists_InRoot_DoesExist()
        {
            // Set up the registry.
            await ABSRegistry.AddItemToRootAsync(new Group("Test1".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test2".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test3".ToCharArray()));

            Assert.IsTrue(await ABSRegistry.ExistsAsync("Test1"));
            Assert.IsTrue(await ABSRegistry.ExistsAsync("/Test1"));
        }
예제 #6
0
        public async Task LocateFromPath_MultipleParts()
        {
            var secondGroup = new Group("Another".ToCharArray());
            var rootGroup   = new Group("ABPaint".ToCharArray())
            {
                InnerItems = new List <Item>()
                {
                    secondGroup
                }
            };
            await ABSRegistry.AddItemToRootAsync(rootGroup);

            CollectionAssert.AreEqual(secondGroup.Name, (await ABSRegistry.LocateFromPathAsync("/ABPaint/Another")).Name);
        }
예제 #7
0
        public async Task Delete_InRoot()
        {
            // Set up the registry.
            await ABSRegistry.AddItemToRootAsync(new Group("Test1".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test2".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test3".ToCharArray()));

            // Delete the item.
            await ABSRegistry.DeleteAsync("Test2");

            // It shouldn't exist anymore.
            Assert.IsFalse(await ABSRegistry.ExistsAsync("Test2"));
        }
예제 #8
0
        public async Task AddItemAt_InOtherGroup_NotGroup()
        {
            var groupName = "NewGroup".ToCharArray();

            // Set up the registry.
            await ABSRegistry.AddItemToRootAsync(new Group("Test1".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test2".ToCharArray()));

            // Add the item.
            await ABSRegistry.AddItemAtAsync("Test1", new Group(groupName));

            // Make sure that group exists.
            CollectionAssert.AreEqual(groupName, (ABSRegistry.RegistryItems[0] as Group).InnerItems[0].Name);
        }
예제 #9
0
        public async Task CreateGroup_InOtherGroup()
        {
            // Set up the registry.
            await ABSRegistry.AddItemToRootAsync(new Group("Test1".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test2".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test3".ToCharArray()));

            // Add the group.
            await ABSRegistry.CreateGroupAsync("Test1/NewGroup");

            // Make sure that group exists.
            CollectionAssert.AreEqual("NewGroup".ToCharArray(), (ABSRegistry.RegistryItems[0] as Group).InnerItems[0].Name);
        }
예제 #10
0
        public async Task GetItems_FromRoot()
        {
            var rootArr = new Group[]
            {
                new Group("Test1".ToCharArray()),
                new Group("Test2".ToCharArray()),
                new Group("Test3".ToCharArray())
            };

            for (int i = 0; i < rootArr.Length; i++)
            {
                await ABSRegistry.AddItemToRootAsync(rootArr[i]);
            }

            CollectionAssert.AreEqual(rootArr, await ABSRegistry.GetItemsAsync("/"));
        }
예제 #11
0
        public async Task AddItemToRoot_AlreadyExists()
        {
            var groupName = "Test".ToCharArray();

            // Add the group.
            await ABSRegistry.AddItemToRootAsync(new Group(groupName));


            try
            {
                await ABSRegistry.AddItemToRootAsync(new Group(groupName));

                // An exception should have been thrown, so it shouldn't get here.
                Assert.Fail();
            }
            catch (Exception) { }
        }
예제 #12
0
        public async Task AddItemAt_InOtherGroup_AlreadyExists()
        {
            // Set up the registry.
            await ABSRegistry.AddItemToRootAsync(new Group("Test1".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test2".ToCharArray()));

            await ABSRegistry.AddItemToRootAsync(new Group("Test3".ToCharArray()));

            // Add the item.
            await ABSRegistry.AddItemAtAsync("Test1", new Group("NewGroup".ToCharArray()));

            try
            {
                await ABSRegistry.AddItemAtAsync("Test1", new Group("NewGroup".ToCharArray()));

                // An exception should have been thrown.
                Assert.Fail();
            }
            catch (Exception) { }
        }
예제 #13
0
        public async Task GetItems_InvalidPath()
        {
            var rootArr = new Group[]
            {
                new Group("Test1".ToCharArray()),
                new Group("Test2".ToCharArray()),
                new Group("Test3".ToCharArray())
            };

            for (int i = 0; i < rootArr.Length; i++)
            {
                await ABSRegistry.AddItemToRootAsync(rootArr[i]);
            }

            try
            {
                // This should throw an exception, meaning the "Assert.Fail" never gets hit.
                await ABSRegistry.GetItemsAsync("Test4");

                Assert.Fail();
            } catch (Exception) { }
        }
예제 #14
0
        public async Task Exists_MultipleParts_DoesExist()
        {
            var rootArr = new Group[]
            {
                new Group("Test1".ToCharArray())
                {
                    InnerItems = new List <Item>()
                    {
                        new Group("Inner".ToCharArray())
                    }
                },
                new Group("Test2".ToCharArray()),
                new Group("Test3".ToCharArray())
            };

            for (int i = 0; i < rootArr.Length; i++)
            {
                await ABSRegistry.AddItemToRootAsync(rootArr[i]);
            }

            Assert.IsTrue(await ABSRegistry.ExistsAsync("Test1/Inner"));
            Assert.IsTrue(await ABSRegistry.ExistsAsync("/Test1/Inner"));
        }
예제 #15
0
        public async Task LocateInRoot_ValidPath()
        {
            await ABSRegistry.AddItemToRootAsync(new Group("ABPaint".ToCharArray()));

            CollectionAssert.AreEqual((await ABSRegistry.LocateInRootAsync("ABPaint")).Name, "ABPaint".ToCharArray());
        }