示例#1
0
        public void Serialization()
        {
            var scheme = new ColorScheme();

            scheme.AssignFreeColor("me");
            scheme.AssignFreeColor("you");

            var serializer = new DataContractJsonSerializer(typeof(ColorScheme));

            // Serialize
            var stream = new MemoryStream();

            serializer.WriteObject(stream, scheme);
            var bytes = stream.ToArray();
            var json  = Encoding.UTF8.GetString(bytes);

            // Deserialize
            stream.Close();
            stream = new MemoryStream(bytes);
            var deserialized = (ColorScheme)serializer.ReadObject(stream);

            // Colors are the same
            Assert.AreEqual(scheme.GetBrush("me").ToString(), deserialized.GetBrush("me").ToString());
            Assert.AreEqual(scheme.GetBrush("you").ToString(), deserialized.GetBrush("you").ToString());
        }
示例#2
0
        public void AddingTooMuchColors()
        {
            var scheme = new ColorScheme();

            // Add names until no more colors are available
            while (scheme.AssignFreeColor(Guid.NewGuid().ToString()))
            {
            }

            Assert.IsFalse(scheme.AssignFreeColor("me"));

            // Even if we do not have a color, the name is added.
            // The coloring can be edited later.
            Assert.IsTrue(scheme.Names.Contains("me"));

            // me has the default color
            var name         = scheme.GetBrush("me").Color.ToString();
            var defaultColor = DefaultDrawingPrimitives.DefaultColor.ToString();

            Assert.AreEqual(defaultColor, name);
        }