public void SerializeDiscord()
        {
            var sources = new Dictionary <string, Source>();
            var source2 = new Source("source2", DateTime.Now);
            var u2      = new Source("u2", DateTime.Now);
            var source1 = new Source("source1", DateTime.Now.AddDays(1));
            var u1      = new Source("u1", DateTime.Now.AddDays(1));

            sources.Add(source2.Id, source2);
            sources.Add(u2.Id, u2);
            sources.Add(source1.Id, source1);
            sources.Add(u1.Id, u1);

            Discord discord = new Discord();

            // Remember adding first = back of the list
            discord.AddId("123456789", source2);
            discord.AddUsername("username2", u2);
            discord.AddId("4444", source1);
            discord.AddUsername("username1", u1);

            string json = Serialize(discord);

            Console.WriteLine(nameof(SerializeDiscord) + ": ");
            Console.WriteLine(json);
            Discord deserialized     = Deserialize <Discord>(json, sources);
            var     orderedIds       = deserialized.IdsHandler.GetItemsOrdered();
            var     orderedUsernames = deserialized.UsernamesHandler.GetItemsOrdered();

            Assert.AreEqual(2, orderedIds.Count, "Unexpected number of ids");
            Assert.AreEqual(2, orderedUsernames.Count, "Unexpected number of usernames");
            Assert.AreEqual("4444", orderedIds[0].Value, "Id [0] unexpected handle");
            Assert.AreEqual("source1", orderedIds[0].Sources[0].Name, "Id [0] unexpected source");
            Assert.AreEqual("123456789", orderedIds[1].Value, "Id [1] unexpected handle");
            Assert.AreEqual("source2", orderedIds[1].Sources[0].Name, "Id [1] unexpected source");
            Assert.AreEqual("username1", orderedUsernames[0].Value, "Usernames [0] unexpected handle");
            Assert.AreEqual("u1", orderedUsernames[0].Sources[0].Name, "Usernames [0] unexpected source");
            Assert.AreEqual("username2", orderedUsernames[1].Value, "Usernames [1] unexpected handle");
            Assert.AreEqual("u2", orderedUsernames[1].Sources[0].Name, "Usernames [1] unexpected source");
        }