|
|
|
@ -168,5 +168,36 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
|
|
|
|
Assert.Equal(new[] { "foo" }, target); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Listeners_Can_Be_Added_By_Listener() |
|
|
|
{ |
|
|
|
var classes = new Classes(); |
|
|
|
var listener1 = new ClassesChangedListener(() => { }); |
|
|
|
var listener2 = new ClassesChangedListener(() => classes.AddListener(listener1)); |
|
|
|
|
|
|
|
classes.AddListener(listener2); |
|
|
|
classes.Add("bar"); |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Listeners_Can_Be_Removed_By_Listener() |
|
|
|
{ |
|
|
|
var classes = new Classes(); |
|
|
|
var listener1 = new ClassesChangedListener(() => { }); |
|
|
|
var listener2 = new ClassesChangedListener(() => classes.RemoveListener(listener1)); |
|
|
|
|
|
|
|
classes.AddListener(listener1); |
|
|
|
classes.AddListener(listener2); |
|
|
|
classes.Add("bar"); |
|
|
|
} |
|
|
|
|
|
|
|
private class ClassesChangedListener : IClassesChangedListener |
|
|
|
{ |
|
|
|
private Action _action; |
|
|
|
|
|
|
|
public ClassesChangedListener(Action action) => _action = action; |
|
|
|
public void Changed() => _action(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|