public void TestEnumSerializeDeserialize()
        {
            SampleSerializable serializable = new SampleSerializable();

            serializable.Field1 = SampleEnum.Splitting;
            serializable.Field2 = SampleEnum2.Splitting;
            serializable.Field3 = SampleEnum3.Splitting;

            using (MemoryStream ms = new MemoryStream())
            {
                serializable.SaveTo(ms);

                ms.Position = 0;

                string json = (new StreamReader(ms)).ReadToEnd();

                Assert.AreEqual("{\"field1\":\"splitting\",\"field2\":\"Splitting\",\"field3\":2}", json);
                serializable = new SampleSerializable();
                serializable.LoadFrom(new JsonTextReader(new StringReader(json)));
                Assert.AreEqual(SampleEnum.Splitting, serializable.Field1);
                Assert.AreEqual(SampleEnum2.Splitting, serializable.Field2);
                Assert.AreEqual(SampleEnum3.Splitting, serializable.Field3);

                serializable = new SampleSerializable();
                serializable.LoadFrom(new JsonTextReader(new StringReader("{\"field1\":\"splitting\",\"field2\":\"Splitting\",\"field3\":\"Splitting\"}")));
                Assert.AreEqual(SampleEnum.Splitting, serializable.Field1);
                Assert.AreEqual(SampleEnum2.Splitting, serializable.Field2);
                Assert.AreEqual(SampleEnum3.Splitting, serializable.Field3);
            }
        }
        public void BinarySerializable_WrongTypeRead()
        {
            SampleSerializable sample = new SampleSerializable(12345);

            sample.Write("Sample");

            SampleSerializable2 wrongType = new SampleSerializable2(0);

            Assert.IsFalse(wrongType.TryRead("Sample"));
        }
        public void BinarySerializable_BasicRoundTrip()
        {
            SampleSerializable sample = new SampleSerializable(12345);

            sample.Write("Sample");

            SampleSerializable sampleRead = new SampleSerializable(0);

            Assert.IsTrue(sampleRead.TryRead("Sample"));

            Assert.AreEqual(4, BinarySerializable.Size("Sample"));
            Assert.AreEqual(sample.Value, sampleRead.Value);
        }
        public void BinarySerializable_EnumerateAndDelete()
        {
            IEnumerable <string> items;

            // Delete any pre-existing items
            foreach (string serializedItem in BinarySerializable.EnumerateUnder("."))
            {
                BinarySerializable.Delete(serializedItem);
            }

            // Add one item
            SampleSerializable sample = new SampleSerializable(12345);

            sample.Write("Sample");

            // Verify folder size finds one item only
            Assert.AreEqual(4, BinarySerializable.Size("."));

            // Verify it is found
            items = BinarySerializable.EnumerateUnder(".");
            Assert.AreEqual(1, items.Count());

            // Add another item
            sample.Write("Sample2");

            // Verify both are found
            items = BinarySerializable.EnumerateUnder(".");
            Assert.AreEqual(2, items.Count());

            // Verify folder size finds both items
            Assert.AreEqual(8, BinarySerializable.Size("."));

            // Delete first item; verify count drops
            BinarySerializable.Delete("Sample");
            items = BinarySerializable.EnumerateUnder(".");
            Assert.AreEqual(1, items.Count());
        }
        public void BinarySerializable_FileMissing()
        {
            SampleSerializable sample = new SampleSerializable(0);

            Assert.IsFalse(sample.TryRead("FileNotFound"));
        }