Skip to content

Commit b980f1f

Browse files
David Niermanjoshkempner
authored andcommitted
Fix Bug - build MockRepositorySpecification without schema
1 parent 601eb68 commit b980f1f

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

src/ReactiveDomain.Testing/Specifications/MockRepositorySpecification.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ public class MockRepositorySpecification : DispatcherSpecification
2323
/// </summary>
2424
/// <param name="schema">Schema prefix for stream name.</param>
2525
/// <param name="dataStore">Stream store connection.</param>
26-
public MockRepositorySpecification(string schema, IStreamStoreConnection dataStore)
26+
private MockRepositorySpecification(string schema, IStreamStoreConnection dataStore)
2727
{
2828
_schema = schema;
29-
StreamNameBuilder = new PrefixedCamelCaseStreamNameBuilder(schema);
29+
StreamNameBuilder = string.IsNullOrEmpty(schema) ? new PrefixedCamelCaseStreamNameBuilder() : new PrefixedCamelCaseStreamNameBuilder(schema);
3030
StreamStoreConnection = dataStore;
3131
StreamStoreConnection.Connect();
3232
EventSerializer = new JsonMessageSerializer();
@@ -55,7 +55,7 @@ public MockRepositorySpecification(string schema, IStreamStoreConnection dataSto
5555
/// Creates a mock repository connected to a StreamStore.
5656
/// </summary>
5757
/// <param name="dataStore">Stream store connection.</param>
58-
public MockRepositorySpecification(IStreamStoreConnection dataStore) : this("", dataStore)
58+
public MockRepositorySpecification(IStreamStoreConnection dataStore) : this(dataStore.ConnectionName, dataStore)
5959
{
6060
}
6161

src/ReactiveDomain.Testing/Specifications/MockRepositoryTests.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using ReactiveDomain.Messaging;
33
using ReactiveDomain.Messaging.Bus;
4+
using ReactiveDomain.Testing.EventStore;
45
using Xunit;
56

67
namespace ReactiveDomain.Testing
@@ -28,7 +29,7 @@ public void can_get_repository_events()
2829
var aggregate = new TestAggregate(id);
2930
_fixture.Repository.Save(aggregate);
3031
_fixture.RepositoryEvents.WaitFor<TestAggregateMessages.NewAggregate>(TimeSpan.FromMilliseconds(500));
31-
32+
3233
_fixture
3334
.RepositoryEvents
3435
.AssertNext<TestAggregateMessages.NewAggregate>(e => e.AggregateId == id, "Aggregate Id Mismatch")
@@ -37,7 +38,7 @@ public void can_get_repository_events()
3738

3839
[Fact]
3940
public void can_clear_queues()
40-
{
41+
{
4142
var evt = new TestEvent();
4243
_fixture.Dispatcher.Publish(evt);
4344

@@ -70,6 +71,28 @@ public void can_clear_queues()
7071
.RepositoryEvents
7172
.AssertEmpty();
7273
}
74+
75+
[Fact]
76+
public void create_mock_repository_without_a_prefix()
77+
{
78+
var id = Guid.NewGuid();
79+
var expectedStreamName = $"testAggregate-{id:n}";
80+
var mockRepositoryWithoutPrefix = new MockRepositorySpecification(dataStore: new MockStreamStoreConnection(""));
81+
var categoryStreamName = mockRepositoryWithoutPrefix.StreamNameBuilder.GenerateForAggregate(typeof(TestAggregate), id);
82+
Assert.Equal(expectedStreamName, categoryStreamName);
83+
}
84+
85+
[Fact]
86+
public void create_mock_repository_with_a_prefix()
87+
{
88+
var prefix = "iamaprefix";
89+
var id = Guid.NewGuid();
90+
var expectedStreamName = $"{prefix}.testAggregate-{id:n}";
91+
var mockRepositoryWithoutPrefix = new MockRepositorySpecification(dataStore: new MockStreamStoreConnection(prefix));
92+
var categoryStreamName = mockRepositoryWithoutPrefix.StreamNameBuilder.GenerateForAggregate(typeof(TestAggregate), id);
93+
Assert.Equal(expectedStreamName, categoryStreamName);
94+
}
95+
7396
public CommandResponse Handle(TestCommands.Command1 command)
7497
{
7598
return command.Succeed();

0 commit comments

Comments
 (0)