Example #1
0
 public void TestStore()
 {
     var a = new Persistent<string>("one");
     a.Store();
     a.Value = "two";
     a.Undo();
     Assert.True(a.Value == "one");
     a.Redo();
     Assert.True(a.Value == "two");
 }
Example #2
0
 public void TestLoaded()
 {
     var a = new LoadedTestObject();
     Assert.True(a.Loaded);
     var persistent = new Persistent<LoadedTestObject>(a);
     var b = new LoadedTestObject();
     persistent.Store();
     Assert.True(a.Loaded);
     persistent.Value = b;
     persistent.Store();
     Assert.False(a.Loaded);
     Assert.True(b.Loaded);
     var c = new LoadedTestObject();
     persistent.Value = c;
     persistent.Store();
     // previous:c, current:c
     Assert.False(a.Loaded);
     Assert.False(b.Loaded);
     persistent.Undo();
     // previous:b, current:c, next:c
     persistent.Undo();
     // previous:a, current:b, next:c
     Assert.True(persistent.Value == b);
     Assert.False(a.Loaded);
     Assert.True(b.Loaded);
     Assert.False(c.Loaded);
     persistent.Undo();
     // current:a, next:b
     Assert.True(a.Loaded);
     Assert.False(b.Loaded);
     Assert.False(c.Loaded);
     persistent.Redo();
     // previous:a, current:b, next:c
     persistent.Redo();
     // previous:b, current:c, next:c
     Assert.False(a.Loaded);
     Assert.False(b.Loaded);
     Assert.True(c.Loaded);
     persistent.Redo();
     // previous:c, current:c
     Assert.False(a.Loaded);
     Assert.False(b.Loaded);
     Assert.True(c.Loaded);
 }