public void TestTypeNameSerialization()
        {
            var data = new Human()
            {
                Items = new List <IUnit>()
                {
                    new Dog(),
                    new Human()
                    {
                        Items = new List <IUnit>()
                        {
                            new Dog(), new Dog()
                        }
                    }
                }
            };

            var serializer = new SettingsSerializer();

            serializer.SaveJson(data, "TmpResult.json");

            SerializeTests.CompareJsons(@"Data\SerializationDeep\ExpectedSettings.json", "TmpResult.json");

            var manager = new SettingsManager();

            var loadedData = manager.LoadSettings <IUnit>("TmpResult.json");

            Assert.AreEqual(JsonConvert.SerializeObject(data), JsonConvert.SerializeObject(loadedData));

            var loadedData2 = manager.LoadSettings <Human>("TmpResult.json");

            Assert.AreEqual(JsonConvert.SerializeObject(data), JsonConvert.SerializeObject(loadedData2));
        }
        public void TestMultipleIntances()
        {
            var tmpDir = new DirectoryInfo("Tmp");

            if (tmpDir.Exists)
            {
                tmpDir.Delete(true);
                Thread.Sleep(100);
            }

            var serializer = new SettingsSerializer();

            serializer.SaveJson(_settings, @"Tmp\settings.json");

            SerializeTests.CompareJsons(@"Data\SerializationDeep2\ExpectedSettings.json", @"Tmp\settings.json");
            SerializeTests.CompareJsons(@"Data\SerializationDeep2\Ext0000.json", @"Tmp\Ext0000.json");
            SerializeTests.CompareBytes(@"Data\SerializationDeep2\Data0001.bin", @"Tmp\Data0001.bin");
            SerializeTests.CompareBytes(@"Data\SerializationDeep2\Data0002.bin", @"Tmp\Data0002.bin");
        }
        public void TestMultipleIntancesZip()
        {
            var tmpDir = new DirectoryInfo("Tmp");

            if (tmpDir.Exists)
            {
                tmpDir.Delete(true);
                Thread.Sleep(100);
            }

            var serializer = new SettingsSerializer();

            serializer.SaveZip(_settings, @"Tmp.zip");

            ZipFile.ExtractToDirectory("Tmp.zip", "Tmp");

            SerializeTests.CompareJsons(@"Data\SerializationDeep2\Main.json", @"Tmp\Main.json");
            SerializeTests.CompareJsons(@"Data\SerializationDeep2\Ext0000Zip.json", @"Tmp\Ext0000.json");
            SerializeTests.CompareBytes(@"Data\SerializationDeep2\Data0001.bin", @"Tmp\Data0001.bin");
            SerializeTests.CompareBytes(@"Data\SerializationDeep2\Data0002.bin", @"Tmp\Data0002.bin");
        }