Example #1
0
    public void Add_同じパスが登録された場合は両方とも保持される()
    {
        var registry = new ListenerRegistry();

        registry.Add(typeof(Pang));
        registry.Add(typeof(Pang2));

        registry.GetKeys().Should().HaveCount(1);
        var notifications = registry.GetListeners(registry.GetKeys().First());

        notifications.Should().HaveCount(2);
        var expectedList = new Queue <Type>(new[] { typeof(Pang), typeof(Pang2) });

        for (var i = 0; i < expectedList.Count; i++)
        {
            var expect = expectedList.Dequeue();
            notifications.Should().Contain(n => n.ListenerType == expect);
        }
    }
Example #2
0
    public void Add_AsEventが付与されている場合は追加される()
    {
        var registry = new ListenerRegistry();

        registry.Add(typeof(Pang));
        var ev = registry.GetListeners("pang");

        ev.Should().NotBeNull();
        registry.GetKeys().Should().HaveCount(1);
    }
Example #3
0
    public void Add_AsEventが複数付与されている場合は複数追加される()
    {
        var registry = new ListenerRegistry();

        registry.Add(typeof(MultiPang));

        var ev1 = registry.GetListeners("pang.1");

        ev1.Should().NotBeNull();
        var ev2 = registry.GetListeners("pang.2");

        ev2.Should().NotBeNull();

        registry.GetKeys().Should().HaveCount(2);
    }