private static void CheckSettingValue(EnumParameter p, Guid initialValue, Guid setValue, IEnumeration enumeration) { Assert.That(p.Value, Is.EqualTo(initialValue)); Assert.That(p.SetValueAction(initialValue), Is.Null); var action = p.SetValueAction(setValue); Assert.That(action, Is.Not.Null); CheckNotCorrupt(p, initialValue, enumeration); action.Value.Redo(); CheckNotCorrupt(p, setValue, enumeration); action.Value.Undo(); CheckNotCorrupt(p, initialValue, enumeration); p.TryDeserialiseValue("asd"); CheckCorrupt(p, "asd"); //Test what happens if we undo back to an invalid state var actions = p.SetValueAction(setValue); actions.Value.Redo(); CheckNotCorrupt(p, setValue, enumeration); actions.Value.Undo(); CheckCorrupt(p, "asd"); p.TryDeserialiseValue(setValue.ToString()); CheckNotCorrupt(p, setValue, enumeration); }
public static void TestNullEnumStringDefault() { string name = "enumname2"; Id <Parameter> id = Id <Parameter> .Parse("6DB8D873-9DA3-412F-9164-322AFDE2895E"); EnumParameter p = new EnumParameter(name, id, MockEnumeration2.Instance, null); var def = MockEnumeration2.Instance.DefaultValue.Transformed(b => b, a => { throw new InvalidOperationException(); }); CheckCorrupt(p, def); Guid initialValue = MockEnumeration2.Instance.Options.ElementAt(0); p.SetValueAction(initialValue).Value.Redo(); var setValue = MockEnumeration2.Instance.Options.ElementAt(1); CheckSettingValue(p, initialValue, setValue, MockEnumeration2.Instance); }
public static void TestStringDefault() { string name = "enumname2"; Id <Parameter> id = Id <Parameter> .Parse("6DB8D873-9DA3-412F-9164-322AFDE2895E"); EnumParameter p = new EnumParameter(name, id, MockEnumeration2.Instance, "AStringDefault"); Assert.That(p.Id, Is.EqualTo(id)); Assert.That(p.Name, Is.EqualTo(name)); Assert.That(p.TypeId, Is.EqualTo(MockEnumeration2.Instance.TypeId)); Assert.That(p.Options, Is.EquivalentTo(MockEnumeration2.Instance.Options)); CheckCorrupt(p, "AStringDefault"); var initialValue = MockEnumeration2.Instance.Options.ElementAt(0); p.SetValueAction(initialValue).Value.Redo(); var setValue = MockEnumeration2.Instance.Options.ElementAt(1); CheckSettingValue(p, initialValue, setValue, MockEnumeration2.Instance); }