Skip to content

Commit 8e26d82

Browse files
authored
Merge pull request #53 from adriangodong/remove-wildcard-handlers
Removed wildcard event handler registration
2 parents b5d4379 + f84dcbc commit 8e26d82

File tree

4 files changed

+24
-71
lines changed

4 files changed

+24
-71
lines changed

GitHubHook.Tests/EventHandlersRegistryTests.cs

Lines changed: 23 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -41,36 +41,16 @@ public void RegisterEventHandler_WithInstance_ShouldSucceed()
4141
Assert.AreEqual(1, eventHandlers.eventHandlers.Count);
4242
}
4343

44-
[TestMethod]
45-
public void RegisterWildcardEventHandler_ShouldSucceed()
46-
{
47-
// Act
48-
eventHandlers.RegisterWildcardEventHandler<DefaultHandler>();
49-
50-
// Assert
51-
Assert.AreEqual(1, eventHandlers.wildcardEventHandlers.Count);
52-
}
53-
54-
[TestMethod]
55-
public void RegisterWildcardEventHandler_WithInstance_ShouldSucceed()
56-
{
57-
// Act
58-
eventHandlers.RegisterWildcardEventHandler(new DefaultHandler());
59-
60-
// Assert
61-
Assert.AreEqual(1, eventHandlers.wildcardEventHandlers.Count);
62-
}
63-
6444
[TestMethod]
6545
public void GetEventHandlersOrDefault_ShouldReturnOnlyDefaultHandler_IfEmpty()
6646
{
6747
// Act
68-
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent());
48+
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent()).ToList();
6949

7050
// Assert
7151
Assert.IsNotNull(handlers);
72-
Assert.AreEqual(1, handlers.Count());
73-
Assert.IsTrue(handlers.First() is DefaultHandler);
52+
Assert.AreEqual(1, handlers.Count);
53+
Assert.IsTrue(handlers[0] is DefaultHandler);
7454
}
7555

7656
[TestMethod]
@@ -80,37 +60,21 @@ public void GetEventHandlersOrDefault_ShouldReturnRegisteredHandler_IfAdded()
8060
eventHandlers.RegisterEventHandler<TestHandler>();
8161

8262
// Act
83-
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent());
63+
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent()).ToList();
8464

8565
// Assert
8666
Assert.IsNotNull(handlers);
87-
Assert.AreEqual(1, handlers.Count());
88-
Assert.IsFalse(handlers.First() is DefaultHandler);
89-
Assert.IsTrue(handlers.First() is TestHandler);
67+
Assert.AreEqual(1, handlers.Count);
68+
Assert.IsFalse(handlers[0] is DefaultHandler);
69+
Assert.IsTrue(handlers[0] is TestHandler);
9070
}
9171

9272
[TestMethod]
93-
public void GetEventHandlersOrDefault_ShouldReturnRegisteredWildcardHandler_IfAdded()
94-
{
95-
// Arrange
96-
eventHandlers.RegisterWildcardEventHandler<TestHandler>();
97-
98-
// Act
99-
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent());
100-
101-
// Assert
102-
Assert.IsNotNull(handlers);
103-
Assert.AreEqual(1, handlers.Count());
104-
Assert.IsFalse(handlers.First() is DefaultHandler);
105-
Assert.IsTrue(handlers.First() is TestHandler);
106-
}
107-
108-
[TestMethod]
109-
public void GetEventHandlersOrDefault_ShouldReturnRegisteredAndWildcardHandler_IfAdded()
73+
public void GetEventHandlersOrDefault_ShouldReturnMatchedHandlers()
11074
{
11175
// Arrange
11276
eventHandlers.RegisterEventHandler<TestHandler>();
113-
eventHandlers.RegisterWildcardEventHandler<TestHandler>();
77+
eventHandlers.RegisterEventHandler<TestEventHandler>();
11478

11579
// Act
11680
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent());
@@ -121,24 +85,28 @@ public void GetEventHandlersOrDefault_ShouldReturnRegisteredAndWildcardHandler_I
12185
}
12286

12387
[TestMethod]
124-
public void GetEventHandlersOrDefault_ShouldReturnAllValidHandlers()
88+
public void GetEventHandlersOrDefault_ShouldNotReturnMismatchedHandlers()
12589
{
12690
// Arrange
127-
eventHandlers.RegisterEventHandler<TestHandler>();
128-
eventHandlers.RegisterEventHandler<DerivedTestHandler>();
91+
eventHandlers.RegisterEventHandler<TestEventHandler>();
12992

13093
// Act
131-
var handlers = eventHandlers.GetEventHandlersOrDefault(new TestEvent());
94+
var handlers = eventHandlers.GetEventHandlersOrDefault(new AnotherTestEvent()).ToList();
13295

13396
// Assert
13497
Assert.IsNotNull(handlers);
135-
Assert.AreEqual(2, handlers.Count());
98+
Assert.AreEqual(1, handlers.Count);
99+
Assert.IsTrue(handlers[0] is DefaultHandler);
136100
}
137101

138102
private class TestEvent : BaseEvent
139103
{
140104
}
141105

106+
private class AnotherTestEvent : BaseEvent
107+
{
108+
}
109+
142110
private class TestHandler : BaseEventHandler
143111
{
144112
public override Task<string> HandleEvent(
@@ -151,9 +119,12 @@ public override Task<string> HandleEvent(
151119
}
152120
}
153121

154-
private class DerivedTestHandler : GitHubHook.Handlers.EventHandler<TestEvent>
122+
private class TestEventHandler : GitHubHook.Handlers.EventHandler<TestEvent>
155123
{
156-
public override Task<string> HandleEvent(APIGatewayProxyRequest request, ILambdaContext context, string deliveryId,
124+
public override Task<string> HandleEvent(
125+
APIGatewayProxyRequest request,
126+
ILambdaContext context,
127+
string deliveryId,
157128
TestEvent eventPayload)
158129
{
159130
throw new NotImplementedException();

GitHubHook/EventHandlersRegistry.cs

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,10 @@ public class EventHandlersRegistry : IEventHandlersRegistry
88
{
99

1010
internal readonly List<BaseEventHandler> eventHandlers;
11-
internal readonly List<BaseEventHandler> wildcardEventHandlers;
1211

1312
public EventHandlersRegistry()
1413
{
1514
eventHandlers = new List<BaseEventHandler>();
16-
wildcardEventHandlers = new List<BaseEventHandler>();
1715
}
1816

1917
public void RegisterEventHandler<T>()
@@ -28,18 +26,6 @@ public void RegisterEventHandler<T>(T handler)
2826
eventHandlers.Add(handler);
2927
}
3028

31-
public void RegisterWildcardEventHandler<T>()
32-
where T : BaseEventHandler, new()
33-
{
34-
RegisterWildcardEventHandler(new T());
35-
}
36-
37-
public void RegisterWildcardEventHandler<T>(T handler)
38-
where T : BaseEventHandler
39-
{
40-
wildcardEventHandlers.Add(handler);
41-
}
42-
4329
public IEnumerable<BaseEventHandler> GetEventHandlersOrDefault(BaseEvent eventPayload)
4430
{
4531
var type = eventPayload.GetType();
@@ -54,8 +40,6 @@ public IEnumerable<BaseEventHandler> GetEventHandlersOrDefault(BaseEvent eventPa
5440

5541
}
5642

57-
handlers.AddRange(wildcardEventHandlers);
58-
5943
if (handlers.Count == 0)
6044
{
6145
handlers.Add(new DefaultHandler());

GitHubHook/IEventHandlersRegistry.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ public interface IEventHandlersRegistry
88
{
99
void RegisterEventHandler<T>() where T : BaseEventHandler, new();
1010
void RegisterEventHandler<T>(T handler) where T : BaseEventHandler;
11-
void RegisterWildcardEventHandler<T>() where T : BaseEventHandler, new();
12-
void RegisterWildcardEventHandler<T>(T handler) where T : BaseEventHandler;
1311
IEnumerable<BaseEventHandler> GetEventHandlersOrDefault(BaseEvent eventPayload);
1412
}
1513
}

samples/GitHubHook.S3Dump/Function.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public async Task<APIGatewayProxyResponse> FunctionHandler(
2121
public Function()
2222
{
2323
var eventHandlers = new EventHandlersRegistry();
24-
eventHandlers.RegisterWildcardEventHandler<AnyToS3Handler>();
24+
eventHandlers.RegisterEventHandler<AnyToS3Handler>();
2525

2626
lambdaHandler = new LambdaHandler(
2727
new Authentication(),

0 commit comments

Comments
 (0)