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); }