Skip to content

Commit

Permalink
feat(core): implement an attribute to set custom event name (#41)
Browse files Browse the repository at this point in the history
closes #40
  • Loading branch information
derevnjuk authored Nov 14, 2022
1 parent a12d5cd commit 40ff339
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/SecTester.Core/Bus/EventNameAttribute.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace SecTester.Core.Bus;

[System.AttributeUsage(System.AttributeTargets.Class |
System.AttributeTargets.Struct)]
public class EventNameAttribute : System.Attribute
{
public string Name { get; }

public EventNameAttribute(string name)
{
Name = name;
}
}
28 changes: 28 additions & 0 deletions test/SecTester.Core.Tests/Bus/EventNameAttributeTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
using SecTester.Core.Bus;

namespace SecTester.Core.Tests.Bus;

public class EventNameAttributeTests
{
[EventName(name: "custom_name")]
private record ConcreteEvent(string Payload) : Event
{
public string Payload = Payload;
}

[Fact]
public void EventNameAttribute_SetsCustomName()
{
// arrange
var info = typeof(ConcreteEvent);

// act
var attribute = info.GetCustomAttributes(typeof(EventNameAttribute), true).FirstOrDefault();

// assert
attribute.Should().BeEquivalentTo(new
{
Name = "custom_name"
});
}
}

0 comments on commit 40ff339

Please sign in to comment.