Browse Source

Bugfix when replaying events.

pull/111/head
Sebastian Stehle 8 years ago
parent
commit
11bf99fc8d
  1. 2
      src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs
  2. 4
      src/Squidex.Domain.Apps.Read.MongoDb/Schemas/MongoSchemaRepository.cs
  3. 2
      src/Squidex.Domain.Apps.Read/Schemas/Repositories/ISchemaRepository.cs
  4. 2
      src/Squidex.Domain.Apps.Read/Schemas/Services/Implementations/CachingSchemaProvider.cs
  5. 2
      src/Squidex/Controllers/Api/Schemas/SchemasController.cs
  6. 12
      tests/Squidex.Domain.Apps.Read.Tests/Schemas/CachingSchemaProviderTests.cs

2
src/Squidex.Domain.Apps.Read.MongoDb/Contents/MongoContentRepository.cs

@ -154,7 +154,7 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Contents
{
var collection = GetCollection(appId);
var schema = await schemas.FindSchemaByIdAsync(schemaId);
var schema = await schemas.FindSchemaByIdAsync(schemaId, true);
if (schema == null)
{

4
src/Squidex.Domain.Apps.Read.MongoDb/Schemas/MongoSchemaRepository.cs

@ -71,7 +71,7 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Schemas
return schemaEntity;
}
public async Task<ISchemaEntity> FindSchemaAsync(Guid schemaId, bool provideDeleted = false)
public async Task<ISchemaEntity> FindSchemaAsync(Guid schemaId)
{
var schemaEntity =
await Collection.Find(s => s.Id == schemaId)
@ -79,7 +79,7 @@ namespace Squidex.Domain.Apps.Read.MongoDb.Schemas
schemaEntity?.DeserializeSchema(serializer);
return schemaEntity != null && (provideDeleted || !schemaEntity.IsDeleted) ? schemaEntity : null;
return schemaEntity;
}
}
}

2
src/Squidex.Domain.Apps.Read/Schemas/Repositories/ISchemaRepository.cs

@ -18,6 +18,6 @@ namespace Squidex.Domain.Apps.Read.Schemas.Repositories
Task<ISchemaEntity> FindSchemaAsync(Guid appId, string name);
Task<ISchemaEntity> FindSchemaAsync(Guid schemaId, bool provideDeleted = false);
Task<ISchemaEntity> FindSchemaAsync(Guid schemaId);
}
}

2
src/Squidex.Domain.Apps.Read/Schemas/Services/Implementations/CachingSchemaProvider.cs

@ -48,7 +48,7 @@ namespace Squidex.Domain.Apps.Read.Schemas.Services.Implementations
if (!Cache.TryGetValue(cacheKey, out ISchemaEntity result))
{
result = await repository.FindSchemaAsync(id, provideDeleted);
result = await repository.FindSchemaAsync(id);
Cache.Set(cacheKey, result, CacheDuration);

2
src/Squidex/Controllers/Api/Schemas/SchemasController.cs

@ -89,7 +89,7 @@ namespace Squidex.Controllers.Api.Schemas
entity = await schemaRepository.FindSchemaAsync(AppId, name);
}
if (entity == null)
if (entity == null || entity.IsDeleted)
{
return NotFound();
}

12
tests/Squidex.Domain.Apps.Read.Tests/Schemas/CachingSchemaProviderTests.cs

@ -64,13 +64,13 @@ namespace Squidex.Domain.Apps.Read.Schemas
[Fact]
public async Task Should_also_retrieve_schema_by_name_if_retrieved_by_id_before()
{
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false))
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id))
.Returns(schemaV1);
await ProvideSchemaById(schemaV1);
await ProvideSchemaByName(schemaV1);
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false)).MustHaveHappened();
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id)).MustHaveHappened();
A.CallTo(() => repository.FindSchemaAsync(appId.Id, schemaId.Name)).MustNotHaveHappened();
}
@ -83,16 +83,16 @@ namespace Squidex.Domain.Apps.Read.Schemas
await ProvideSchemaByName(schemaV1);
await ProvideSchemaById(schemaV1);
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false)).MustNotHaveHappened();
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id)).MustNotHaveHappened();
A.CallTo(() => repository.FindSchemaAsync(appId.Id, schemaId.Name)).MustHaveHappened();
}
[Fact]
public async Task Should_clear_cache_for_id_after_update_event()
{
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false))
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id))
.Returns(schemaV2);
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false))
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id))
.Returns(schemaV1).Once();
await ProvideSchemaById(schemaV1);
@ -101,7 +101,7 @@ namespace Squidex.Domain.Apps.Read.Schemas
await ProvideSchemaById(schemaV2);
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id, false)).MustHaveHappened(Repeated.Exactly.Times(2));
A.CallTo(() => repository.FindSchemaAsync(schemaId.Id)).MustHaveHappened(Repeated.Exactly.Times(2));
}
[Fact]

Loading…
Cancel
Save