Skip to content

Commit a9bf68f

Browse files
author
andrey.leskov
committed
fixing tests
1 parent 43bad5d commit a9bf68f

24 files changed

Lines changed: 175 additions & 69 deletions

GridDomain.CQRS.Messaging.Akka/LocalAkkaEventBusTransport.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,14 @@ public void Subscribe(Type messageType, IActorRef actor, IActorRef subscribeNoti
3333
Subscribe(messageType, actor);
3434
}
3535

36-
public void Publish<T>(T msg)
37-
{
38-
_log.Trace("Publishing {@Message} to transport", msg);
39-
_bus.Publish(msg);
40-
}
41-
4236
public void Publish(params object[] messages)
4337
{
4438
foreach (var msg in messages)
45-
Publish<object>(msg);
39+
{
40+
_log.Trace("Publishing {@Message} to transport", msg);
41+
_bus.Publish(msg);
42+
}
4643
}
47-
4844

4945
public void Subscribe(Type messageType, IActorRef actor)
5046
{

GridDomain.CQRS.Messaging.Akka/Remote/RemoteAkkaEventBusTransport.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ public RemoteAkkaEventBusTransport(IActorTransport local, IActorRef remoteSubsc
1717
_local = local;
1818
}
1919

20-
public void Publish<T>(T msg)
21-
{
22-
Publish((object)msg);
23-
}
24-
2520
public void Publish(params object[] messages)
2621
{
2722
_local.Publish(messages);

GridDomain.CQRS.Messaging/IPublisher.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
{
33
public interface IPublisher
44
{
5-
void Publish<T>(T msg);
65
void Publish(params object[] msg);
76
}
87
}

GridDomain.CQRS/IExpectBuilder.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ namespace GridDomain.CQRS
44
{
55
public interface IExpectBuilder<out T>
66
{
7-
//T Create(TimeSpan timeout);
87
T Create();
98
IExpectBuilder<T> And<TMsg>(Predicate<TMsg> filter = null);
109
IExpectBuilder<T> Or<TMsg>(Func<TMsg, bool> filter = null);

GridDomain.Domain.Tests/Sagas/InstanceSagas/Given_saga_When_publishing_any_of_start_messages.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
using System;
2+
using GridDomain.CQRS;
3+
using GridDomain.EventSourcing.Sagas;
4+
using GridDomain.EventSourcing.Sagas.InstanceSagas;
5+
using GridDomain.Node.AkkaMessaging.Waiting;
6+
using GridDomain.Tests.Framework;
27
using GridDomain.Tests.Sagas.SoftwareProgrammingDomain.Events;
38
using NUnit.Framework;
49

@@ -17,13 +22,6 @@ public Given_saga_When_publishing_any_of_start_messages():
1722

1823
}
1924

20-
[OneTimeSetUp]
21-
public void Setup()
22-
{
23-
When_publishing_start_message();
24-
}
25-
26-
2725
[Then]
2826
public void Saga_data_is_not_null()
2927
{
@@ -36,5 +34,10 @@ public void Saga_has_correct_id()
3634
{
3735
Assert.AreEqual(_sagaId, SagaData.Id);
3836
}
37+
38+
protected override IExpectBuilder<AnyMessagePublisher> ConfigureWait(IMessageWaiter<AnyMessagePublisher> waiter)
39+
{
40+
return waiter.Expect<SagaCreatedEvent<SoftwareProgrammingSagaData>>();
41+
}
3942
}
4043
}

GridDomain.Domain.Tests/Sagas/InstanceSagas/Given_saga_When_publishing_several_start_messages.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
using System;
2+
using GridDomain.CQRS;
3+
using GridDomain.EventSourcing.Sagas;
4+
using GridDomain.EventSourcing.Sagas.InstanceSagas;
5+
using GridDomain.Tests.Framework;
26
using GridDomain.Tests.Sagas.SoftwareProgrammingDomain.Events;
37
using NUnit.Framework;
48

@@ -27,24 +31,22 @@ public Given_saga_When_publishing_several_start_messages(): base(SagaId,GetMessa
2731

2832
}
2933

30-
[OneTimeSetUp]
31-
public void Setup()
32-
{
33-
base.When_publishing_start_message();
34-
}
35-
3634
[Then]
3735
public void Saga_reinitialized_from_last_start_message()
3836
{
3937
Assert.AreEqual(secondMessage.SofaId, SagaData.Data.SofaId);
4038
}
4139

42-
4340
[Then]
4441
public void Saga_has_correct_state()
4542
{
4643
var saga = new SoftwareProgrammingSaga();
4744
Assert.AreEqual(saga.Coding.Name, SagaData.Data.CurrentStateName);
4845
}
46+
47+
protected override IExpectBuilder<AnyMessagePublisher> ConfigureWait(IMessageWaiter<AnyMessagePublisher> waiter)
48+
{
49+
return waiter.Expect<SagaCreatedEvent<SoftwareProgrammingSagaData>>();
50+
}
4951
}
5052
}
Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,46 @@
11
using System;
2+
using GridDomain.CQRS;
3+
using GridDomain.EventSourcing.Sagas;
4+
using GridDomain.EventSourcing.Sagas.InstanceSagas;
5+
using GridDomain.Tests.Framework;
26
using GridDomain.Tests.Sagas.SoftwareProgrammingDomain.Events;
37
using NUnit.Framework;
48

59
namespace GridDomain.Tests.Sagas.InstanceSagas
610
{
711
[TestFixture]
8-
class Given_saga_When_publishing_start_message_A : Given_saga_When_publishing_start_messages
12+
class Given_saga_When_publishing_start_message_A : SoftwareProgrammingInstanceSagaTest
913
{
10-
private static readonly GotTiredEvent StartMessage = new GotTiredEvent(Guid.NewGuid(), Guid.NewGuid(),
11-
Guid.NewGuid(), Guid.NewGuid());
12-
public Given_saga_When_publishing_start_message_A():base(StartMessage.SagaId, StartMessage)
13-
{
14-
14+
private static readonly GotTiredEvent StartMessage =
15+
new GotTiredEvent(Guid.NewGuid(),
16+
Guid.NewGuid(),
17+
Guid.NewGuid(),
18+
Guid.NewGuid());
1519

16-
}
20+
private SagaDataAggregate<SoftwareProgrammingSagaData> _sagaData;
1721

1822
[OneTimeSetUp]
19-
public void Setup()
23+
public void When_publishing_start_message()
2024
{
21-
base.When_publishing_start_message();
22-
}
25+
GridNode.NewDebugWaiter()
26+
.Expect<SagaCreatedEvent<SoftwareProgrammingSagaData>>()
27+
.Create()
28+
.Publish(StartMessage)
29+
.Wait();
2330

31+
_sagaData = LoadAggregate<SagaDataAggregate<SoftwareProgrammingSagaData>>(StartMessage.SagaId);
32+
}
2433

2534
[Then]
2635
public void Saga_has_correct_data()
2736
{
28-
Assert.AreEqual(StartMessage.PersonId, SagaData.Data.PersonId);
37+
Assert.AreEqual(StartMessage.PersonId, _sagaData.Data.PersonId);
2938
}
3039

3140
[Then]
3241
public void Saga_has_correct_state()
3342
{
34-
var saga = new SoftwareProgrammingSaga();
35-
Assert.AreEqual(saga.MakingCoffee.Name, SagaData.Data.CurrentStateName);
43+
Assert.AreEqual(nameof(SoftwareProgrammingSaga.MakingCoffee), _sagaData.Data.CurrentStateName);
3644
}
3745
}
3846
}
Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,41 @@
11
using System;
2+
using GridDomain.CQRS;
3+
using GridDomain.EventSourcing.Sagas;
4+
using GridDomain.EventSourcing.Sagas.InstanceSagas;
5+
using GridDomain.Tests.Framework;
26
using GridDomain.Tests.Sagas.SoftwareProgrammingDomain.Events;
37
using NUnit.Framework;
48

59
namespace GridDomain.Tests.Sagas.InstanceSagas
610
{
711
[TestFixture]
8-
class Given_saga_When_publishing_start_message_B : Given_saga_When_publishing_start_messages
12+
class Given_saga_When_publishing_start_message_B : SoftwareProgrammingInstanceSagaTest
913
{
1014
private static readonly SleptWellEvent StartMessage = new SleptWellEvent(Guid.NewGuid(),Guid.NewGuid(),Guid.NewGuid(), null);
11-
12-
public Given_saga_When_publishing_start_message_B() : base(StartMessage.SagaId, StartMessage)
13-
{
14-
15-
16-
}
15+
private SagaDataAggregate<SoftwareProgrammingSagaData> _sagaData;
1716

1817
[OneTimeSetUp]
19-
public void Setup()
18+
public void When_publishing_start_message()
2019
{
21-
base.When_publishing_start_message();
20+
GridNode.NewDebugWaiter()
21+
.Expect<SagaCreatedEvent<SoftwareProgrammingSagaData>>()
22+
.Create()
23+
.Publish(StartMessage)
24+
.Wait();
25+
26+
_sagaData = LoadAggregate<SagaDataAggregate<SoftwareProgrammingSagaData>>(StartMessage.SagaId);
2227
}
2328

2429
[Then]
2530
public void Saga_has_correct_data()
2631
{
27-
Assert.AreEqual(StartMessage.SofaId, SagaData.Data.SofaId);
32+
Assert.AreEqual(StartMessage.SofaId, _sagaData.Data.SofaId);
2833
}
2934

3035
[Then]
3136
public void Saga_has_correct_state()
3237
{
33-
var saga = new SoftwareProgrammingSaga();
34-
Assert.AreEqual(saga.Coding.Name, SagaData.Data.CurrentStateName);
38+
Assert.AreEqual(nameof(SoftwareProgrammingSaga.Coding), _sagaData.Data.CurrentStateName);
3539
}
3640
}
3741
}
Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
using System;
22
using System.Threading;
3+
using GridDomain.CQRS;
34
using GridDomain.EventSourcing.Sagas.InstanceSagas;
5+
using GridDomain.Node.AkkaMessaging.Waiting;
6+
using GridDomain.Tests.Framework;
7+
using NUnit.Framework;
48

59
namespace GridDomain.Tests.Sagas.InstanceSagas
610
{
7-
class Given_saga_When_publishing_start_messages : SoftwareProgrammingInstanceSagaTest
11+
abstract class Given_saga_When_publishing_start_messages : SoftwareProgrammingInstanceSagaTest
812
{
913
protected readonly Guid _sagaId;
1014
private readonly object[] _sagaMessages;
@@ -15,17 +19,21 @@ public Given_saga_When_publishing_start_messages(Guid sagaId, params object[] me
1519
{
1620
_sagaMessages = messages;
1721
_sagaId = sagaId;
18-
1922
}
20-
23+
24+
[OneTimeSetUp]
2125
public void When_publishing_start_message()
2226
{
23-
foreach(var msg in _sagaMessages)
24-
GridNode.Transport.Publish(msg);
27+
var waiter = GridNode.NewDebugWaiter(Timeout);
2528

26-
Thread.Sleep(Timeout);
29+
ConfigureWait(waiter)
30+
.Create()
31+
.Publish(_sagaMessages)
32+
.Wait();
2733

2834
SagaData = LoadAggregate<SagaDataAggregate<SoftwareProgrammingSagaData>>(_sagaId);
2935
}
36+
37+
protected abstract IExpectBuilder<AnyMessagePublisher> ConfigureWait(IMessageWaiter<AnyMessagePublisher> waiter);
3038
}
3139
}

GridDomain.Domain.Tests/Sagas/InstanceSagas/SoftwareProgrammingInstanceSagaTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ protected override IContainerConfiguration CreateConfiguration()
3737
);
3838
}
3939

40-
public SoftwareProgrammingInstanceSagaTest(bool inMemory = true) : base(inMemory)
40+
protected SoftwareProgrammingInstanceSagaTest(bool inMemory = true) : base(inMemory)
4141
{
4242
}
4343
}

0 commit comments

Comments
 (0)