Browse Source

Tests fixed

pull/206/head
Sebastian Stehle 9 years ago
parent
commit
598af53457
  1. 8
      src/Squidex.Infrastructure/Commands/DomainObjectBase.cs
  2. 20
      tests/Squidex.Infrastructure.Tests/Commands/AggregateHandlerTests.cs
  3. 26
      tests/Squidex.Infrastructure.Tests/Commands/DomainObjectBaseTests.cs
  4. 2
      tests/Squidex.Infrastructure.Tests/PropertiesBagTests.cs

8
src/Squidex.Infrastructure/Commands/DomainObjectBase.cs

@ -84,17 +84,17 @@ namespace Squidex.Infrastructure.Commands
public async Task WriteAsync(ISemanticLog log)
{
var events = uncomittedEvents;
var events = uncomittedEvents.ToArray();
if (events.Count > 0)
if (events.Length > 0)
{
state.Version += events.Count;
state.Version += events.Length;
await persistence.WriteSnapshotAsync(state);
try
{
await persistence.WriteEventsAsync(uncomittedEvents.ToArray());
await persistence.WriteEventsAsync(events);
}
catch (Exception ex)
{

20
tests/Squidex.Infrastructure.Tests/Commands/AggregateHandlerTests.cs

@ -25,7 +25,7 @@ namespace Squidex.Infrastructure.Commands
private readonly IServiceProvider serviceProvider = A.Fake<IServiceProvider>();
private readonly IStore store = A.Fake<IStore>();
private readonly IStateFactory stateFactory = A.Fake<IStateFactory>();
private readonly IPersistence<object> persistence = A.Fake<IPersistence<object>>();
private readonly IPersistence<MyDomainState> persistence = A.Fake<IPersistence<MyDomainState>>();
private readonly Envelope<IEvent> event1 = new Envelope<IEvent>(new MyEvent());
private readonly Envelope<IEvent> event2 = new Envelope<IEvent>(new MyEvent());
private readonly CommandContext context;
@ -37,10 +37,10 @@ namespace Squidex.Infrastructure.Commands
public AggregateHandlerTests()
{
command = new MyCommand { AggregateId = domainObjectId };
command = new MyCommand { AggregateId = domainObjectId, ExpectedVersion = EtagVersion.Any };
context = new CommandContext(command);
A.CallTo(() => store.WithSnapshots<MyDomainObject, object>(domainObjectId.ToString(), A<Func<object, Task>>.Ignored))
A.CallTo(() => store.WithSnapshots<MyDomainObject, MyDomainState>(domainObjectId.ToString(), A<Func<MyDomainState, Task>>.Ignored))
.Returns(persistence);
A.CallTo(() => stateFactory.CreateAsync<MyDomainObject>(domainObjectId.ToString()))
@ -111,12 +111,14 @@ namespace Squidex.Infrastructure.Commands
await sut.CreateSyncedAsync<MyDomainObject>(context, async x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
await Task.Yield();
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntityCreatedResult<Guid>>());
@ -132,10 +134,12 @@ namespace Squidex.Infrastructure.Commands
await sut.CreateAsync<MyDomainObject>(context, x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntityCreatedResult<Guid>>());
@ -151,10 +155,12 @@ namespace Squidex.Infrastructure.Commands
await sut.CreateSyncedAsync<MyDomainObject>(context, x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntityCreatedResult<Guid>>());
@ -198,12 +204,14 @@ namespace Squidex.Infrastructure.Commands
await sut.UpdateAsync<MyDomainObject>(context, async x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
await Task.Yield();
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntitySavedResult>());
@ -219,12 +227,14 @@ namespace Squidex.Infrastructure.Commands
await sut.UpdateSyncedAsync<MyDomainObject>(context, async x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
await Task.Yield();
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntitySavedResult>());
@ -240,10 +250,12 @@ namespace Squidex.Infrastructure.Commands
await sut.UpdateAsync<MyDomainObject>(context, x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntitySavedResult>());
@ -259,10 +271,12 @@ namespace Squidex.Infrastructure.Commands
await sut.UpdateSyncedAsync<MyDomainObject>(context, x =>
{
x.RaiseEvent(new MyEvent());
x.RaiseEvent(new MyEvent());
passedDomainObject = x;
});
Assert.Equal(1, domainObject.State.Version);
Assert.Equal(domainObject, passedDomainObject);
Assert.NotNull(context.Result<EntitySavedResult>());

26
tests/Squidex.Infrastructure.Tests/Commands/DomainObjectBaseTests.cs

@ -22,20 +22,20 @@ namespace Squidex.Infrastructure.Commands
public class DomainObjectBaseTests
{
private readonly IStore store = A.Fake<IStore>();
private readonly IPersistence<object> persistence = A.Fake<IPersistence<object>>();
private readonly IPersistence<MyDomainState> persistence = A.Fake<IPersistence<MyDomainState>>();
private readonly Guid id = Guid.NewGuid();
private readonly MyDomainObject sut = new MyDomainObject();
public DomainObjectBaseTests()
{
A.CallTo(() => store.WithSnapshots<MyDomainObject, object>(id.ToString(), A<Func<object, Task>>.Ignored))
A.CallTo(() => store.WithSnapshots<MyDomainObject, MyDomainState>(id.ToString(), A<Func<MyDomainState, Task>>.Ignored))
.Returns(persistence);
}
[Fact]
public void Should_instantiate()
{
Assert.Equal(EtagVersion.NotFound, sut.Version);
Assert.Equal(EtagVersion.Empty, sut.Version);
}
[Fact]
@ -47,7 +47,7 @@ namespace Squidex.Infrastructure.Commands
sut.RaiseEvent(event1);
sut.RaiseEvent(event2);
Assert.Equal(EtagVersion.NotFound, sut.Version);
Assert.Equal(EtagVersion.Empty, sut.Version);
Assert.Equal(new IEvent[] { event1, event2 }, sut.GetUncomittedEvents().Select(x => x.Payload).ToArray());
sut.ClearUncommittedEvents();
@ -58,21 +58,14 @@ namespace Squidex.Infrastructure.Commands
[Fact]
public async Task Should_write_state_and_events_when_saved()
{
A.CallTo(() => persistence.Version)
.Returns(100);
await sut.ActivateAsync(id.ToString(), store);
Assert.Equal(100, sut.Version);
var event1 = new MyEvent();
var event2 = new MyEvent();
var newState = new MyDomainState();
sut.RaiseEvent(event1);
sut.RaiseEvent(event2);
var newState = new MyDomainState();
sut.UpdateState(newState);
await sut.WriteAsync(A.Fake<ISemanticLog>());
@ -88,24 +81,17 @@ namespace Squidex.Infrastructure.Commands
[Fact]
public async Task Should_ignore_exception_when_saving()
{
A.CallTo(() => persistence.Version)
.Returns(100);
A.CallTo(() => persistence.WriteEventsAsync(A<IEnumerable<Envelope<IEvent>>>.Ignored))
.Throws(new InvalidOperationException());
await sut.ActivateAsync(id.ToString(), store);
Assert.Equal(100, sut.Version);
var event1 = new MyEvent();
var event2 = new MyEvent();
var newState = new MyDomainState();
sut.RaiseEvent(event1);
sut.RaiseEvent(event2);
var newState = new MyDomainState();
sut.UpdateState(newState);
await sut.WriteAsync(A.Fake<ISemanticLog>());

2
tests/Squidex.Infrastructure.Tests/PropertiesBagTests.cs

@ -214,7 +214,7 @@ namespace Squidex.Infrastructure
{
bag.Set("Key", long.MaxValue);
Assert.Throws<InvalidCastException>(() => bag["Key"].ToInt64(c));
Assert.Throws<InvalidCastException>(() => bag["Key"].ToInt32(c));
}
[Fact]

Loading…
Cancel
Save