예제 #1
0
        public void RestoreSort()
        {
            var compound = new NbtCompound
            {
                new NbtLong("ccc", 3),
                new NbtShort("aaa", 3),
                new NbtCompound("bbb")
                {
                    new NbtInt("ccc", 3),
                    new NbtInt("bbb", 3),
                    new NbtInt("aaa", 3),
                }
            };
            var            original = (NbtCompound)compound.Clone();
            UndoableAction action   = null;

            compound.ActionPerformed += a => action = a;

            compound.Sort(new AlphabeticalSorter(), true);

            Assert.AreEqual(compound[0].Name, "aaa");
            Assert.AreEqual(compound[1].Name, "bbb");
            Assert.AreEqual(compound[2].Name, "ccc");
            Assert.AreEqual(compound["bbb"][0].Name, "aaa");
            Assert.AreEqual(compound["bbb"][1].Name, "bbb");
            Assert.AreEqual(compound["bbb"][2].Name, "ccc");

            action.Undo();

            AssertIdentical(compound, original);
        }