Skip to content

Commit 43bad5d

Browse files
author
andrey.leskov
committed
Fixing tests for state saga snapshotting
Renamed test state saga state "Working" to "Coding" fpr unification with test instance sagas
1 parent 8832eca commit 43bad5d

6 files changed

Lines changed: 27 additions & 18 deletions

File tree

GridDomain.Domain.Tests/Sagas/StateSagas/CreateSagaGraph.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ internal class CreateSagaGraph
1010
[Test]
1111
public void GetGraph()
1212
{
13-
var saga = new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(Guid.NewGuid(),SoftwareProgrammingSaga.States.Working));
13+
var saga = new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(Guid.NewGuid(),SoftwareProgrammingSaga.States.Coding));
1414
Console.WriteLine(saga.Machine.ToDotGraph());
1515
}
1616
}

GridDomain.Domain.Tests/Sagas/StateSagas/SampleSaga/SoftwareProgrammingSaga.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class SoftwareProgrammingSaga :
1414
IHandler<CoffeMadeEvent>
1515
{
1616

17-
public static readonly ISagaDescriptor Descriptor = new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(Guid.Empty,States.Working));
17+
public static readonly ISagaDescriptor Descriptor = new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(Guid.Empty,States.Coding));
1818
public SoftwareProgrammingSaga(SoftwareProgrammingSagaState state) : base(state)
1919
{
2020
var gotTiredTriggerTrigger = RegisterEvent<GotTiredEvent>(Triggers.GoForCoffe);
@@ -25,7 +25,7 @@ public SoftwareProgrammingSaga(SoftwareProgrammingSagaState state) : base(state)
2525
//TODO: refactor this ugly hack!
2626
RegisterEvent<BadCoffeMachineRememberedEvent>(Triggers.DummyForSagaStateChange);
2727

28-
Machine.Configure(States.Working)
28+
Machine.Configure(States.Coding)
2929
.Permit(Triggers.GoForCoffe, States.MakingCoffee);
3030

3131
Machine.Configure(States.MakingCoffee)
@@ -34,7 +34,7 @@ public SoftwareProgrammingSaga(SoftwareProgrammingSagaState state) : base(state)
3434
State.RememberPerson(e.PersonId);
3535
Dispatch(new MakeCoffeCommand(e.PersonId, State.CoffeMachineId));
3636
})
37-
.Permit(Triggers.FeelWell, States.Working)
37+
.Permit(Triggers.FeelWell, States.Coding)
3838
.Permit(Triggers.GoToSleep, States.Sleeping);
3939

4040
Machine.Configure(States.Sleeping)
@@ -47,7 +47,7 @@ public SoftwareProgrammingSaga(SoftwareProgrammingSagaState state) : base(state)
4747
State.RememberBadCoffeMachine(e.CoffeMachineId);
4848
Dispatch(new GoToWorkCommand(e.ForPersonId));
4949
})
50-
.Permit(Triggers.SleepAnough, States.Working);
50+
.Permit(Triggers.SleepAnough, States.Coding);
5151
}
5252

5353
public void Handle(GotTiredEvent e)
@@ -81,7 +81,7 @@ public enum Triggers
8181

8282
public enum States
8383
{
84-
Working,
84+
Coding,
8585
MakingCoffee,
8686
Sleeping
8787
}

GridDomain.Domain.Tests/Sagas/StateSagas/SampleSaga/SoftwareProgrammingSagaFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ public SoftwareProgrammingSaga Create(SoftwareProgrammingSagaState message)
1717
public SoftwareProgrammingSaga Create(GotTiredEvent message)
1818
{
1919
return new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(message.SagaId,
20-
SoftwareProgrammingSaga.States.Working));
20+
SoftwareProgrammingSaga.States.Coding));
2121
}
2222

2323
public SoftwareProgrammingSaga Create(Guid id)
2424
{
25-
return new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(id,SoftwareProgrammingSaga.States.Working));
25+
return new SoftwareProgrammingSaga(new SoftwareProgrammingSagaState(id,SoftwareProgrammingSaga.States.Coding));
2626
}
2727
}
2828
}

GridDomain.Domain.Tests/Sagas/StateSagas/SubscriptionRenewSagaStateTransitionTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public void When_valid_transition_Then_state_is_changed()
4545
Given_new_saga_with_state(SoftwareProgrammingSaga.States.MakingCoffee);
4646
SagaInstance.Handle(new CoffeMadeEvent(Guid.NewGuid(),Guid.NewGuid()));
4747

48-
Assert.AreEqual(SoftwareProgrammingSaga.States.Working, SagaInstance.DomainState);
48+
Assert.AreEqual(SoftwareProgrammingSaga.States.Coding, SagaInstance.DomainState);
4949
}
5050
}
5151
}

GridDomain.Domain.Tests/Sagas/StateSagas/Transitions/Given_AutomatonymousSaga_When_valid_Transitions.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void State_is_changed()
3535
var given = new Given_State_SoftareProgramming_Saga(SoftwareProgrammingSaga.States.MakingCoffee);
3636

3737
When_execute_valid_transaction(given.SagaMachine, new CoffeMadeEvent(Guid.NewGuid(), Guid.NewGuid()));
38-
Assert.AreEqual(SoftwareProgrammingSaga.States.Working, given.SagaMachine.State.MachineState);
38+
Assert.AreEqual(SoftwareProgrammingSaga.States.Coding, given.SagaMachine.State.MachineState);
3939
}
4040

4141
[Then]
@@ -45,7 +45,7 @@ public void State_is_changed_on_using_non_generic_transit_method()
4545

4646
object msg = new CoffeMadeEvent(Guid.NewGuid(), Guid.NewGuid());
4747
given.SagaMachine.Transit(msg);
48-
Assert.AreEqual(SoftwareProgrammingSaga.States.Working, given.SagaMachine.State.MachineState);
48+
Assert.AreEqual(SoftwareProgrammingSaga.States.Coding, given.SagaMachine.State.MachineState);
4949
}
5050

5151
[Then]
@@ -64,7 +64,7 @@ public void State_transitioned_event_is_raised()
6464
[Then]
6565
public void Commands_are_produced()
6666
{
67-
var given = new Given_State_SoftareProgramming_Saga(SoftwareProgrammingSaga.States.Working);
67+
var given = new Given_State_SoftareProgramming_Saga(SoftwareProgrammingSaga.States.Coding);
6868

6969
var subscriptionExpiredEvent = new GotTiredEvent(Guid.NewGuid());
7070
When_execute_valid_transaction(given.SagaInstance, subscriptionExpiredEvent);
@@ -75,7 +75,7 @@ public void Commands_are_produced()
7575
[Then]
7676
public void SagaData_is_changed_after_transition_by_event_data()
7777
{
78-
var given = new Given_State_SoftareProgramming_Saga(SoftwareProgrammingSaga.States.Working);
78+
var given = new Given_State_SoftareProgramming_Saga(SoftwareProgrammingSaga.States.Coding);
7979
given.SagaDataAggregate.ClearEvents();
8080

8181
var gotTiredEvent = new GotTiredEvent(Guid.NewGuid());

GridDomain.Tests.Acceptance/Snapshots/State_Saga_Should_delete_snapshots_according_to_policy_on_shutdown.cs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
using Akka.Actor;
44
using GridDomain.Common;
55
using GridDomain.EventSourcing.Sagas;
6+
using GridDomain.EventSourcing.Sagas.InstanceSagas;
7+
using GridDomain.EventSourcing.Sagas.StateSagas;
68
using GridDomain.Node.Actors;
79
using GridDomain.Node.Configuration.Composition;
810
using GridDomain.Tests.Framework;
@@ -45,18 +47,19 @@ public void Given_save_on_each_message_policy_and_keep_2_snapshots()
4547
_sagaId = Guid.NewGuid();
4648
var sagaStartEvent = new GotTiredEvent(_sagaId, Guid.NewGuid(), Guid.NewGuid(), _sagaId);
4749

48-
var waiter = GridNode.NewWaiter()
50+
var w = GridNode.NewWaiter()
4951
.Expect<SagaCreatedEvent<SoftwareProgrammingSaga.States>>()
5052
.Create();
5153

5254
Publisher.Publish(sagaStartEvent);
53-
waiter.Wait();
55+
w.Wait();
5456

5557
var sagaActorRef = LookupStateSagaActor<SoftwareProgrammingSaga, SoftwareProgrammingSagaState>(_sagaId);
56-
58+
Watch(sagaActorRef);
5759
sagaActorRef.Tell(new NotifyOnPersistenceEvents(TestActor), TestActor);
5860

5961

62+
6063
var sagaContinueEventA = new CoffeMakeFailedEvent(_sagaId,
6164
sagaStartEvent.PersonId,
6265
BusinessDateTime.UtcNow,
@@ -66,9 +69,15 @@ public void Given_save_on_each_message_policy_and_keep_2_snapshots()
6669
sagaStartEvent.LovelySofaId,
6770
_sagaId);
6871

72+
var waiter = GridNode.NewWaiter()
73+
.Expect<SagaTransitionEvent<SoftwareProgrammingSaga.States, SoftwareProgrammingSaga.Triggers>>(e => e.State == SoftwareProgrammingSaga.States.Coding)
74+
.And<SagaTransitionEvent<SoftwareProgrammingSaga.States, SoftwareProgrammingSaga.Triggers>>(e => e.State == SoftwareProgrammingSaga.States.Sleeping)
75+
.Create();
76+
6977
Publisher.Publish(sagaContinueEventA, sagaContinueEventB);
7078

71-
Watch(sagaActorRef);
79+
waiter.Wait();
80+
7281
sagaActorRef.Tell(GracefullShutdownRequest.Instance, TestActor);
7382

7483
FishForMessage<Terminated>(m => true);
@@ -93,7 +102,7 @@ public void Restored_aggregates_should_have_same_ids()
93102
[Test]
94103
public void Last_Snapshots_should_have_coding_state_from_last_event()
95104
{
96-
Assert.AreEqual(SoftwareProgrammingSaga.States.Working,_snapshots.Last().Aggregate.MachineState);
105+
Assert.AreEqual(SoftwareProgrammingSaga.States.Coding, _snapshots.Last().Aggregate.MachineState);
97106
}
98107

99108
[Test]

0 commit comments

Comments
 (0)