示例#1
0
        private static void SaveAndLoadMaterialAndCompare(Material material)
        {
            var data           = BinaryDataExtensions.SaveDataIntoMemoryStream(material);
            var loadedMaterial = BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <Material>(data);

            Assert.AreEqual(material, loadedMaterial);
        }
示例#2
0
        private static void SaveDataTypeAndLoadAgain <Primitive>(Primitive input)
        {
            var data   = BinaryDataExtensions.SaveDataIntoMemoryStream(input);
            var output = BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <Primitive>(data);

            Assert.AreEqual(input, output);
        }
示例#3
0
		public void SaveAndLoadPlatformsResult()
		{
			var result = new SupportedPlatformsResult(new[] { PlatformName.Android, PlatformName.Web });
			var stream = BinaryDataExtensions.SaveDataIntoMemoryStream(result);
			var loaded = BinaryDataExtensions.
				LoadDataWithKnownTypeFromMemoryStream<SupportedPlatformsResult>(stream);
			Assert.AreEqual(2, loaded.Platforms.Length);
		}
示例#4
0
        public void SaveAndLoadArrayWithMixedNumbersAndNullElements()
        {
            var instance  = new object[] { 1, null };
            var data      = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);
            var retrieved = BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <object[]>(data);

            Assert.IsTrue(instance.Compare(retrieved));
        }
示例#5
0
        private static void SaveAndLoadArray <T>(T[] array)
        {
            var data           = BinaryDataExtensions.SaveDataIntoMemoryStream(array);
            var retrievedArray = BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <T[]>(data);

            Assert.AreEqual(array.Length, retrievedArray.Length);
            Assert.IsTrue(array.Compare(retrievedArray));
        }
示例#6
0
        public void SaveAndLoadRange()
        {
            var range  = new Range <Vector2D>(Vector2D.Zero, new Vector2D(3.0f, 3.0f));
            var data   = BinaryDataExtensions.SaveDataIntoMemoryStream(range);
            var output =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <Range <Vector2D> >(data);

            Assert.AreEqual(range.Start, output.Start);
            Assert.AreEqual(range.End, output.End);
        }
示例#7
0
 public void LoadingAndSavingKnownTypeShouldNotCauseLoggerMessage()
 {
     using (var logger = new MockLogger())
     {
         var data   = BinaryDataExtensions.SaveDataIntoMemoryStream(Vector2D.One);
         var loaded = BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <Vector2D>(data);
         Assert.AreEqual(Vector2D.One, loaded);
         Assert.AreEqual(0, logger.NumberOfMessages);
     }
 }
示例#8
0
        public void SaveAndLoadClassWithEmptyByteArray()
        {
            var instance = new ClassWithByteArray {
                data = new byte[] { 1, 2, 3 }
            };
            var data      = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);
            var retrieved =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ClassWithByteArray>(data);

            Assert.IsTrue(instance.data.Compare(retrieved.data));
        }
示例#9
0
        public void TestLoadContentType()
        {
            ContentLoader.Use <MockContentLoader>();
            const string ContentName    = "SomeXml";
            var          instance       = new ObjectWithContent(ContentLoader.Load <MockXmlContent>(ContentName));
            var          stream         = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);
            var          loadedInstance =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ObjectWithContent>(stream);

            Assert.AreEqual(instance.xmlContent, loadedInstance.xmlContent);
            ContentLoader.DisposeIfInitialized();
        }
示例#10
0
        public void LoadingContentDataFromBinaryDataWillLoadItFromName()
        {
            var content = new ImageAnimation(new[] { ContentLoader.Load <Image>("DeltaEngineLogo") }, 1);
            var data    = BinaryDataExtensions.SaveDataIntoMemoryStream(content);

            Assert.AreEqual(63, data.Length);
            var loadedContent =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ImageAnimation>(data);

            Assert.AreEqual(content.Name, loadedContent.Name);
            Assert.AreEqual(content.Frames.Length, loadedContent.Frames.Length);
            Assert.AreEqual(content.Frames[0], loadedContent.Frames[0]);
        }
示例#11
0
        private static void SaveAndLoadDictionary <Key, Value>(Dictionary <Key, Value> dictionaryData)
        {
            var data = BinaryDataExtensions.SaveDataIntoMemoryStream(dictionaryData);
            var retrievedDictionary =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <Dictionary <Key, Value> >(data);

            Assert.AreEqual(dictionaryData.Count, retrievedDictionary.Count);
            if (typeof(Key).IsValueType && typeof(Value).IsValueType)
            {
                Assert.IsTrue(dictionaryData.Compare(retrievedDictionary));
            }
            Assert.IsTrue(!dictionaryData.Except(retrievedDictionary).Any());
        }
示例#12
0
        public void SaveAndLoadExplicitLayoutStruct()
        {
            var explicitLayoutTest = new ExplicitLayoutTestClass
            {
                someValue    = 8,
                anotherValue = 5,
                unionValue   = 7
            };
            var data      = BinaryDataExtensions.SaveDataIntoMemoryStream(explicitLayoutTest);
            var retrieved =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ExplicitLayoutTestClass>(data);

            Assert.AreEqual(8, retrieved.someValue);
            Assert.AreEqual(7, retrieved.anotherValue);
            Assert.AreEqual(7, retrieved.unionValue);
        }
示例#13
0
        private static void SaveAndLoadList <Primitive>(List <Primitive> listData)
        {
            var data          = BinaryDataExtensions.SaveDataIntoMemoryStream(listData);
            var retrievedList =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <List <Primitive> >(data);

            Assert.AreEqual(listData.Count, retrievedList.Count);
            if (typeof(Primitive).IsValueType)
            {
                Assert.IsTrue(listData.Compare(retrievedList));
            }

            for (int index = 0; index < listData.Count; index++)
            {
                Assert.AreEqual(listData[index].GetType(), retrievedList[index].GetType());
            }
        }
示例#14
0
        public void SaveAndLoadClassWithArrays()
        {
            var instance  = new ClassWithArrays();
            var data      = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);
            var retrieved =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ClassWithArrays>(data);

            Assert.IsTrue(retrieved.byteData.Compare(new byte[] { 1, 2, 3, 4, 5 }),
                          retrieved.byteData.ToText());
            Assert.IsTrue(retrieved.charData.Compare(new[] { 'a', 'b', 'c' }),
                          retrieved.charData.ToText());
            Assert.IsTrue(retrieved.intData.Compare(new[] { 10, 20, 30 }), retrieved.intData.ToText());
            Assert.IsTrue(retrieved.stringData.Compare(new[] { "Hi", "there" }),
                          retrieved.stringData.ToText());
            Assert.IsTrue(retrieved.enumData.Compare(new[] { DayOfWeek.Monday, DayOfWeek.Sunday }),
                          retrieved.enumData.ToText());
            Assert.IsTrue(retrieved.byteEnumData.Compare(new[] { ByteEnum.Normal, ByteEnum.High }),
                          retrieved.byteEnumData.ToText());
        }
示例#15
0
        public void LoadAndSaveClassWithMemoryStream()
        {
            var instance = new ClassWithMemoryStream(new byte[] { 1, 2, 3, 4 });

            instance.Writer.Write(true);
            instance.Version = 3;
            var data = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);

            // Only the internal data should be saved, 1 byte memory stream not null, 1 byte data length,
            // memory stream data: 4 bytes+1 bool byte, 4 byte for the int Version
            Assert.AreEqual(11, data.Length);
            var retrieved =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ClassWithMemoryStream>(data);

            Assert.IsNotNull(retrieved.reader);
            Assert.AreEqual(instance.Version, retrieved.Version);
            Assert.AreEqual(instance.Length, retrieved.Length);
            Assert.IsTrue(instance.Bytes.Compare(retrieved.Bytes), retrieved.Bytes.ToText());
        }
示例#16
0
        public void SaveAndLoadClassWithAnotherClassInside()
        {
            var instance = new ClassWithAnotherClassInside
            {
                Number = 17,
                Data   =
                    new ClassWithAnotherClassInside.InnerDerivedClass {
                    Value = 1.5, additionalFlag = true
                },
                SecondInstanceNotSet = null
            };
            var data      = BinaryDataExtensions.SaveDataIntoMemoryStream(instance);
            var retrieved =
                BinaryDataExtensions.LoadDataWithKnownTypeFromMemoryStream <ClassWithAnotherClassInside>(
                    data);

            Assert.AreEqual(instance.Number, retrieved.Number);
            Assert.AreEqual(instance.Data.Value, retrieved.Data.Value);
            Assert.AreEqual(instance.Data.additionalFlag, retrieved.Data.additionalFlag);
            Assert.AreEqual(instance.SecondInstanceNotSet, retrieved.SecondInstanceNotSet);
        }