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()); }
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); }