blob: 89034a03149d8f3c49e485b1d91dffe10df32065 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
using System;
using NUnit.Framework;
namespace Xamarin.Forms.Core.UnitTests
{
internal class MockTriggerAction : TriggerAction<BindableObject>
{
public bool Invoked { get; set;}
protected override void Invoke (BindableObject sender)
{
Invoked = true;
}
}
internal class MockBindableWithEvent : VisualElement
{
public void FireEvent ()
{
if (MockEvent != null)
MockEvent (this, EventArgs.Empty);
}
public void FireEvent2 ()
{
if (MockEvent2 != null)
MockEvent2 (this, EventArgs.Empty);
}
public event EventHandler MockEvent;
public event EventHandler MockEvent2;
}
[TestFixture]
public class EventTriggerTest : BaseTestFixture
{
[Test]
public void TestTriggerActionInvoked ()
{
var bindable = new MockBindableWithEvent ();
var triggeraction = new MockTriggerAction ();
var eventtrigger = new EventTrigger () { Event = "MockEvent", Actions = { triggeraction } };
var collection = bindable.Triggers;
collection.Add (eventtrigger);
Assert.False (triggeraction.Invoked);
bindable.FireEvent ();
Assert.True (triggeraction.Invoked);
}
[Test]
public void TestChangeEventOnEventTrigger ()
{
var bindable = new MockBindableWithEvent ();
var triggeraction = new MockTriggerAction ();
var eventtrigger = new EventTrigger { Event = "MockEvent", Actions = { triggeraction } };
var collection = bindable.Triggers;
collection.Add (eventtrigger);
triggeraction.Invoked = false;
Assert.False (triggeraction.Invoked);
bindable.FireEvent ();
Assert.True (triggeraction.Invoked);
triggeraction.Invoked = false;
Assert.False (triggeraction.Invoked);
bindable.FireEvent2 ();
Assert.False (triggeraction.Invoked);
Assert.Throws<InvalidOperationException>(()=> eventtrigger.Event = "MockEvent2");
}
}
}
|