Exemplo n.º 1
0
        public void SerializationTest()
        {
            DummyClassA a = new DummyClassA();

            a.Id = 1;

            DummyClassB b = new DummyClassB();

            b.Id = 2;

            DummyClassC c = new DummyClassC();

            c.Id = 3;

            a.Other = b;
            b.Other = c;
            c.Other = a;


            b.Text = "HELLO";
            c.Time = new DateTime(2020, 1, 1);

            CustomFormatter formatter = new CustomFormatter();

            using (FileStream stream = File.Open("format_dummies.txt", FileMode.OpenOrCreate))
            {
                formatter.Serialize(stream, a);
            }

            DummyClassA a2;
            DummyClassB b2;

            using (FileStream stream = File.Open("format_dummies.txt", FileMode.Open))
            {
                a2 = (DummyClassA)formatter.Deserialize(stream);
            }

            Assert.AreEqual(1, a2.Id);
            Assert.AreEqual(2, a2.Other.Id);
            Assert.AreEqual(3, a2.Other.Other.Id);
            Assert.AreEqual(1, a2.Other.Other.Other.Id);

            Assert.AreEqual(typeof(DummyClassA), a2.GetType());
            Assert.AreEqual(typeof(DummyClassB), a2.Other.GetType());
            Assert.AreEqual(typeof(DummyClassC), a2.Other.Other.GetType());
            Assert.AreEqual(typeof(DummyClassA), a2.Other.Other.Other.GetType());

            Assert.AreEqual("HELLO", a2.Other.Text);
            Assert.AreEqual(2020, a2.Other.Other.Time.Year);
            Assert.AreEqual(1, a2.Other.Other.Time.Month);
            Assert.AreEqual(1, a2.Other.Other.Time.Day);

            b2 = a2.Other;
            Assert.ReferenceEquals(a2.Other, b2);
            b2.Id = 10f;
            Assert.AreEqual(10f, a2.Other.Id);
        }
Exemplo n.º 2
0
        public void DeserializeJSONDummiesTest()
        {
            DummyClassA a = new DummyClassA
            {
                Id = 1
            };

            DummyClassB b = new DummyClassB
            {
                Id = 2
            };

            DummyClassC c = new DummyClassC
            {
                Id = 3
            };

            a.Other = b;
            b.Other = c;
            c.Other = a;



            b.Text = "HELLO";
            c.Time = new DateTime(2020, 1, 1);



            DummyClassA a2;
            DummyClassB b2;

            JSONSerializer serializer = new JSONSerializer();

            serializer.Serialize("test.json", a);
            a2 = serializer.Deserialize <DummyClassA>("test.json");

            Assert.AreEqual(1, a2.Id);
            Assert.AreEqual(2, a2.Other.Id);
            Assert.AreEqual(3, a2.Other.Other.Id);
            Assert.AreEqual(1, a2.Other.Other.Other.Id);

            Assert.AreEqual(typeof(DummyClassA), a2.GetType());
            Assert.AreEqual(typeof(DummyClassB), a2.Other.GetType());
            Assert.AreEqual(typeof(DummyClassC), a2.Other.Other.GetType());
            Assert.AreEqual(typeof(DummyClassA), a2.Other.Other.Other.GetType());

            Assert.AreEqual("HELLO", a2.Other.Text);
            Assert.AreEqual(2020, a2.Other.Other.Time.Year);
            Assert.AreEqual(1, a2.Other.Other.Time.Month);
            Assert.AreEqual(1, a2.Other.Other.Time.Day);

            b2 = a2.Other;
            Assert.ReferenceEquals(a2.Other, b2);
            b2.Id = 10f;
            Assert.AreEqual(10f, a2.Other.Id);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            int choice = 0;

            CustomFormatter customFormatter = new CustomFormatter();
            JSONSerializer  jSONSerializer  = new JSONSerializer();
            DummyClassA     a = new DummyClassA();

            a.Id = 1;

            DummyClassB b = new DummyClassB();

            b.Id = 2;

            DummyClassC c = new DummyClassC();

            c.Id = 3;

            a.Other = b;
            b.Other = c;
            c.Other = a;



            b.Text = "HELLO";
            c.Time = new DateTime(2020, 1, 1);

            while (choice != 5)
            {
                Menu();
                Console.Write("Wybieram: ");
                choice = Console.Read() - '0';
                switch (choice)
                {
                case 1:
                    string path = GetFile();
                    using (FileStream stream = File.Open(path, FileMode.OpenOrCreate))
                    {
                        customFormatter.Serialize(stream, a);
                    }
                    Console.WriteLine("Serializacja wlasna zakonczona");
                    break;

                case 2:
                    path = GetFile();
                    if (File.Exists(path))
                    {
                        using (FileStream stream = File.Open(path, FileMode.Open))
                        {
                            a = (DummyClassA)customFormatter.Deserialize(stream);
                            Console.WriteLine("Deserializacja wlasna zakonczona");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Plik nie istnieje");
                    }
                    break;

                case 3:
                    path = GetFile();
                    jSONSerializer.Serialize(path, a);
                    Console.WriteLine("Serializacja JSON zakonczona");
                    break;

                case 4:
                    path = GetFile();
                    if (File.Exists(path))
                    {
                        a = jSONSerializer.Deserialize <DummyClassA>(path);
                        Console.WriteLine("Deserializacja JSON zakonczona");
                    }
                    else
                    {
                        Console.WriteLine("Plik nie istnieje");
                    }
                    break;

                case 5:
                    Environment.Exit(0);
                    break;

                default:
                    Console.WriteLine("Blad");
                    break;
                }
            }
        }