Browse Source

Code smells fixed.

pull/351/head
Sebastian Stehle 7 years ago
parent
commit
5e0e779ba7
  1. 2
      src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs
  2. 2
      src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs
  3. 11
      src/Squidex.Domain.Apps.Entities/Contents/ScheduleJob.cs
  4. 2
      src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs
  5. 8
      src/Squidex.Domain.Apps.Entities/Contents/Text/GrainTextIndexer.cs
  6. 1
      src/Squidex.Domain.Apps.Entities/Contents/Text/ITextIndexer.cs
  7. 4
      src/Squidex.Domain.Apps.Entities/Contents/Text/IndexState.cs
  8. 4
      src/Squidex.Domain.Apps.Entities/Contents/Text/TextIndexContent.cs
  9. 12
      src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs
  10. 8
      src/Squidex.Infrastructure.Azure/EventSourcing/FilterBuilder.cs
  11. 4
      src/Squidex.Infrastructure/Assets/MemoryAssetStore.cs
  12. 2
      src/Squidex.Infrastructure/Commands/IDomainState.cs
  13. 1
      src/Squidex/Areas/Api/Controllers/Rules/Models/RuleElementPropertyDto.cs
  14. 3
      src/Squidex/Config/Domain/EntitiesServices.cs
  15. 2
      src/Squidex/Config/Domain/StoreServices.cs
  16. 8
      tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs
  17. 17
      tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/GrainTextIndexerTests.cs
  18. 2
      tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemaChangedTriggerHandlerTests.cs
  19. 3
      tests/Squidex.Infrastructure.Tests/Assets/MongoGridFSAssetStoreFixture.cs
  20. 52
      tests/Squidex.Infrastructure.Tests/EventSourcing/EventStoreTests.cs
  21. 2
      tests/Squidex.Web.Tests/ApiExceptionFilterAttributeTests.cs
  22. 8
      tests/Squidex.Web.Tests/ApiPermissionAttributeTests.cs
  23. 7
      tests/Squidex.Web.Tests/Pipeline/CleanupHostMiddlewareTests.cs
  24. 2
      tools/Migrate_01/Rebuilder.cs

2
src/Squidex.Domain.Apps.Entities/Assets/BackupAssets.cs

@ -77,7 +77,7 @@ namespace Squidex.Domain.Apps.Entities.Assets
{
await RestoreTagsAsync(appId, reader);
await RebuildManyAsync(assetIds, id => RebuildAsync<AssetState, AssetGrain>(id));
await RebuildManyAsync(assetIds, RebuildAsync<AssetState, AssetGrain>);
}
private async Task RestoreTagsAsync(Guid appId, BackupReader reader)

2
src/Squidex.Domain.Apps.Entities/Contents/BackupContents.cs

@ -50,7 +50,7 @@ namespace Squidex.Domain.Apps.Entities.Contents
{
var contentIds = contentIdsBySchemaId.Values.SelectMany(x => x);
return RebuildManyAsync(contentIds, id => RebuildAsync<ContentState, ContentGrain>(id));
return RebuildManyAsync(contentIds, RebuildAsync<ContentState, ContentGrain>);
}
}
}

11
src/Squidex.Domain.Apps.Entities/Contents/ScheduleJob.cs

@ -22,12 +22,17 @@ namespace Squidex.Domain.Apps.Entities.Contents
public Instant DueTime { get; }
public ScheduleJob(Guid id, Status status, RefToken scheduledBy, Instant dueTime)
public ScheduleJob(Guid id, Status status, RefToken by, Instant due)
{
Id = id;
ScheduledBy = scheduledBy;
ScheduledBy = by;
Status = status;
DueTime = dueTime;
DueTime = due;
}
public static ScheduleJob Build(Status status, RefToken by, Instant due)
{
return new ScheduleJob(Guid.NewGuid(), status, by, due);
}
}
}

2
src/Squidex.Domain.Apps.Entities/Contents/State/ContentState.cs

@ -91,7 +91,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.State
protected void On(ContentStatusScheduled @event)
{
ScheduleJob = new ScheduleJob(Guid.NewGuid(), @event.Status, @event.Actor, @event.DueTime);
ScheduleJob = ScheduleJob.Build(@event.Status, @event.Actor, @event.DueTime);
}
protected void On(ContentDeleted @event)

8
src/Squidex.Domain.Apps.Entities/Contents/Text/GrainTextIndexer.cs

@ -68,7 +68,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
switch (@event.Payload)
{
case ContentDeleted contentDeleted:
case ContentDeleted _:
await index.DeleteAsync(id);
break;
case ContentCreated contentCreated:
@ -80,10 +80,10 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
case ContentUpdated contentUpdated:
await index.IndexAsync(id, Data(contentUpdated.Data), false);
break;
case ContentChangesDiscarded contentChangesDiscarded:
case ContentChangesDiscarded _:
await index.CopyAsync(id, false);
break;
case ContentChangesPublished contentChangesPublished:
case ContentChangesPublished _:
case ContentStatusChanged contentStatusChanged when contentStatusChanged.Status == Status.Published:
await index.CopyAsync(id, true);
break;
@ -105,7 +105,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
}
}
private J<IndexData> Data(NamedContentData data)
private static J<IndexData> Data(NamedContentData data)
{
return new IndexData { Data = data };
}

1
src/Squidex.Domain.Apps.Entities/Contents/Text/ITextIndexer.cs

@ -8,7 +8,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Squidex.Domain.Apps.Core.Contents;
using Squidex.Domain.Apps.Entities.Apps;
namespace Squidex.Domain.Apps.Entities.Contents.Text

4
src/Squidex.Domain.Apps.Entities/Contents/Text/IndexState.cs

@ -15,13 +15,11 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
internal sealed class IndexState
{
private const string MetaFor = "_fd";
private readonly IndexReader indexReader;
private readonly IndexWriter indexWriter;
private readonly BinaryDocValues binaryValues;
public IndexState(IndexReader indexReader, IndexWriter indexWriter)
{
this.indexReader = indexReader;
this.indexWriter = indexWriter;
if (indexReader != null)
@ -63,7 +61,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
private static BytesRef GetValue(byte forDraft, byte forPublished)
{
return new BytesRef(new byte[] { forDraft, forPublished });
return new BytesRef(new[] { forDraft, forPublished });
}
}
}

4
src/Squidex.Domain.Apps.Entities/Contents/Text/TextIndexContent.cs

@ -22,8 +22,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
{
private const string MetaId = "_id";
private const string MetaKey = "_key";
private const int ForDraftIndex = 0;
private const int ForPublishedIndex = 1;
private readonly IndexWriter indexWriter;
private readonly IndexSearcher indexSearcher;
private readonly IndexState indexState;
@ -112,7 +110,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
}
}
private Document CreateDocument(NamedContentData data)
private static Document CreateDocument(NamedContentData data)
{
var languages = new Dictionary<string, StringBuilder>();

12
src/Squidex.Infrastructure.Azure/EventSourcing/CosmosDbEventStore.cs

@ -78,7 +78,7 @@ namespace Squidex.Infrastructure.EventSourcing
await documentClient.CreateDocumentCollectionIfNotExistsAsync(databaseUri,
new DocumentCollection
{
Id = Constants.LeaseCollection,
Id = Constants.LeaseCollection
});
await documentClient.CreateDocumentCollectionIfNotExistsAsync(databaseUri,
@ -94,7 +94,7 @@ namespace Squidex.Infrastructure.EventSourcing
Indexes = new Collection<Index>
{
Index.Range(DataType.Number),
Index.Range(DataType.String),
Index.Range(DataType.String)
}
}
}
@ -107,17 +107,17 @@ namespace Squidex.Infrastructure.EventSourcing
{
Paths = new Collection<string>
{
$"/eventStream",
$"/eventStreamOffset"
"/eventStream",
"/eventStreamOffset"
}
}
}
},
Id = Constants.Collection,
Id = Constants.Collection
},
new RequestOptions
{
PartitionKey = new PartitionKey($"/eventStream")
PartitionKey = new PartitionKey("/eventStream")
});
}
}

8
src/Squidex.Infrastructure.Azure/EventSourcing/FilterBuilder.cs

@ -94,21 +94,21 @@ namespace Squidex.Infrastructure.EventSourcing
return BuildQuery(filters, parameters);
}
private static SqlQuerySpec BuildQuery(List<string> filters, SqlParameterCollection parameters)
private static SqlQuerySpec BuildQuery(IEnumerable<string> filters, SqlParameterCollection parameters)
{
var query = $"SELECT * FROM {Constants.Collection} e WHERE {string.Join(" AND ", filters)} ORDER BY e.timestamp";
return new SqlQuerySpec(query, parameters);
}
private static void ForProperty(this List<string> filters, SqlParameterCollection parameters, string property, object value)
private static void ForProperty(this ICollection<string> filters, SqlParameterCollection parameters, string property, object value)
{
filters.Add($"ARRAY_CONTAINS(e.events, {{ \"header\": {{ \"{property}\": @value }} }}, true)");
parameters.Add(new SqlParameter("@value", value));
}
private static void ForRegex(this List<string> filters, SqlParameterCollection parameters, string streamFilter)
private static void ForRegex(this ICollection<string> filters, SqlParameterCollection parameters, string streamFilter)
{
if (!StreamFilter.IsAll(streamFilter))
{
@ -125,7 +125,7 @@ namespace Squidex.Infrastructure.EventSourcing
}
}
private static void ForPosition(this List<string> filters, SqlParameterCollection parameters, StreamPosition streamPosition)
private static void ForPosition(this ICollection<string> filters, SqlParameterCollection parameters, StreamPosition streamPosition)
{
if (streamPosition.IsEndOfCommit)
{

4
src/Squidex.Infrastructure/Assets/MemoryAssetStore.cs

@ -73,7 +73,7 @@ namespace Squidex.Infrastructure.Assets
public Task UploadAsync(string fileName, Stream stream, CancellationToken ct = default)
{
return UploadCoreAsync(fileName, stream, false);
return UploadCoreAsync(fileName, stream, false, ct);
}
private async Task UploadCoreAsync(string fileName, Stream stream, bool overwrite, CancellationToken ct = default)
@ -127,7 +127,7 @@ namespace Squidex.Infrastructure.Assets
return TaskHelper.Done;
}
private string GetFileName(string id, long version, string suffix)
private static string GetFileName(string id, long version, string suffix)
{
return StringExtensions.JoinNonEmpty("_", id, version.ToString(), suffix);
}

2
src/Squidex.Infrastructure/Commands/IDomainState.cs

@ -9,7 +9,7 @@ using Squidex.Infrastructure.EventSourcing;
namespace Squidex.Infrastructure.Commands
{
public interface IDomainState<T>
public interface IDomainState<out T>
{
long Version { get; set; }

1
src/Squidex/Areas/Api/Controllers/Rules/Models/RuleElementPropertyDto.cs

@ -6,7 +6,6 @@
// ==========================================================================
using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;
using Squidex.Domain.Apps.Core.HandleRules;
namespace Squidex.Areas.Api.Controllers.Rules.Models

3
src/Squidex/Config/Domain/EntitiesServices.cs

@ -259,9 +259,6 @@ namespace Squidex.Config.Domain
services.AddTransientAs<AddPatterns>()
.As<IMigration>();
services.AddTransientAs<BuildFullTextIndices>()
.As<IMigration>();
services.AddTransientAs<ConvertEventStore>()
.As<IMigration>();

2
src/Squidex/Config/Domain/StoreServices.cs

@ -50,8 +50,6 @@ namespace Squidex.Config.Domain
var mongoDatabaseName = config.GetRequiredValue("store:mongoDb:database");
var mongoContentDatabaseName = config.GetOptionalValue("store:mongoDb:contentDatabase", mongoDatabaseName);
var isCosmosDb = config.GetOptionalValue<bool>("store:mongoDB:isCosmosDB");
services.Configure<MongoDbOptions>(config.GetSection("store:mongoDB"));
services.AddSingleton(typeof(ISnapshotStore<,>), typeof(MongoSnapshotStore<,>));

8
tests/Squidex.Domain.Apps.Core.Tests/Model/Apps/LanguagesConfigTests.cs

@ -76,7 +76,7 @@ namespace Squidex.Domain.Apps.Core.Model.Apps
public void Should_add_language()
{
var config_0 = LanguagesConfig.Build(Language.DE);
var config_1 = config_0.Set(new LanguageConfig(Language.IT));
var config_1 = config_0.Set(Language.IT);
config_1.OfType<LanguageConfig>().ToList().Should().BeEquivalentTo(
new List<LanguageConfig>
@ -102,7 +102,7 @@ namespace Squidex.Domain.Apps.Core.Model.Apps
{
var config_0 = LanguagesConfig.Build(Language.DE);
config_0.Set(new LanguageConfig(Language.DE));
config_0.Set(Language.DE);
}
[Fact]
@ -110,8 +110,8 @@ namespace Squidex.Domain.Apps.Core.Model.Apps
{
var config_0 = LanguagesConfig.Build(Language.DE);
var config_1 = config_0.Set(new LanguageConfig(Language.UK));
var config_2 = config_1.Set(new LanguageConfig(Language.IT));
var config_1 = config_0.Set(Language.UK);
var config_2 = config_1.Set(Language.IT);
var config_3 = config_2.MakeMaster(Language.IT);
Assert.Equal(Language.IT, config_3.Master.Language);

17
tests/Squidex.Domain.Apps.Entities.Tests/Contents/Text/GrainTextIndexerTests.cs

@ -28,6 +28,7 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
private readonly ITextIndexerGrain grain = A.Fake<ITextIndexerGrain>();
private readonly Guid schemaId = Guid.NewGuid();
private readonly Guid contentId = Guid.NewGuid();
private readonly NamedContentData data = new NamedContentData();
private readonly GrainTextIndexer sut;
public GrainTextIndexerTests()
@ -50,8 +51,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_created()
{
var data = new NamedContentData();
await sut.On(E(new ContentCreated { Data = data }));
A.CallTo(() => grain.IndexAsync(contentId, A<J<IndexData>>.That.Matches(x => x.Value.Data == data), true))
@ -61,8 +60,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_updated()
{
var data = new NamedContentData();
await sut.On(E(new ContentUpdated { Data = data }));
A.CallTo(() => grain.IndexAsync(contentId, A<J<IndexData>>.That.Matches(x => x.Value.Data == data), false))
@ -72,8 +69,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_change_proposed()
{
var data = new NamedContentData();
await sut.On(E(new ContentUpdateProposed { Data = data }));
A.CallTo(() => grain.IndexAsync(contentId, A<J<IndexData>>.That.Matches(x => x.Value.Data == data), true))
@ -83,8 +78,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_change_published()
{
var data = new NamedContentData();
await sut.On(E(new ContentChangesPublished()));
A.CallTo(() => grain.CopyAsync(contentId, true))
@ -94,8 +87,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_change_discarded()
{
var data = new NamedContentData();
await sut.On(E(new ContentChangesDiscarded()));
A.CallTo(() => grain.CopyAsync(contentId, false))
@ -105,8 +96,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_call_grain_when_content_published()
{
var data = new NamedContentData();
await sut.On(E(new ContentStatusChanged { Status = Status.Published }));
A.CallTo(() => grain.CopyAsync(contentId, true))
@ -116,8 +105,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_catch_exception_when_indexing_failed()
{
var data = new NamedContentData();
A.CallTo(() => grain.IndexAsync(contentId, A<J<IndexData>>.Ignored, false))
.Throws(new InvalidOperationException());
@ -127,8 +114,6 @@ namespace Squidex.Domain.Apps.Entities.Contents.Text
[Fact]
public async Task Should_not_catch_exception_when_indexing_failed_often()
{
var data = new NamedContentData();
A.CallTo(() => grain.IndexAsync(contentId, A<J<IndexData>>.Ignored, A<bool>.Ignored))
.Throws(new InvalidOperationException());

2
tests/Squidex.Domain.Apps.Entities.Tests/Schemas/SchemaChangedTriggerHandlerTests.cs

@ -54,8 +54,6 @@ namespace Squidex.Domain.Apps.Entities.Schemas
{
var envelope = Envelope.Create<AppEvent>(@event).SetEventStreamNumber(12);
var schemaGrain = A.Fake<ISchemaGrain>();
var result = await sut.CreateEnrichedEventAsync(envelope);
Assert.Equal(type, ((EnrichedSchemaEvent)result).Type);

3
tests/Squidex.Infrastructure.Tests/Assets/MongoGridFSAssetStoreFixture.cs

@ -14,13 +14,12 @@ namespace Squidex.Infrastructure.Assets
public sealed class MongoGridFSAssetStoreFixture : IDisposable
{
private readonly IMongoClient mongoClient = new MongoClient("mongodb://localhost");
private readonly IMongoDatabase mongoDatabase;
public MongoGridFsAssetStore AssetStore { get; }
public MongoGridFSAssetStoreFixture()
{
mongoDatabase = mongoClient.GetDatabase("GridFSTest");
var mongoDatabase = mongoClient.GetDatabase("GridFSTest");
var gridFSBucket = new GridFSBucket<string>(mongoDatabase, new GridFSBucketOptions
{

52
tests/Squidex.Infrastructure.Tests/EventSourcing/EventStoreTests.cs

@ -61,10 +61,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
await Assert.ThrowsAsync<WrongEventVersionException>(() => Sut.AppendAsync(Guid.NewGuid(), streamName, 0, events));
@ -75,10 +75,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
await Sut.AppendAsync(Guid.NewGuid(), streamName, events);
@ -91,7 +91,7 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2")
@ -102,7 +102,7 @@ namespace Squidex.Infrastructure.EventSourcing
var readEvents1 = await QueryAsync(streamName);
var readEvents2 = await QueryWithCallbackAsync(streamName);
var expected = new StoredEvent[]
var expected = new[]
{
new StoredEvent(streamName, "Position", 0, events[0]),
new StoredEvent(streamName, "Position", 1, events[1])
@ -117,10 +117,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
var readEvents = await QueryWithSubscriptionAsync(streamName, async () =>
@ -128,7 +128,7 @@ namespace Squidex.Infrastructure.EventSourcing
await Sut.AppendAsync(Guid.NewGuid(), streamName, events);
});
var expected = new StoredEvent[]
var expected = new[]
{
new StoredEvent(streamName, "Position", 0, events[0]),
new StoredEvent(streamName, "Position", 1, events[1])
@ -142,10 +142,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events1 = new EventData[]
var events1 = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
await QueryWithSubscriptionAsync(streamName, async () =>
@ -153,10 +153,10 @@ namespace Squidex.Infrastructure.EventSourcing
await Sut.AppendAsync(Guid.NewGuid(), streamName, events1);
});
var events2 = new EventData[]
var events2 = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
var readEventsFromPosition = await QueryWithSubscriptionAsync(streamName, async () =>
@ -164,7 +164,7 @@ namespace Squidex.Infrastructure.EventSourcing
await Sut.AppendAsync(Guid.NewGuid(), streamName, events2);
});
var expectedFromPosition = new StoredEvent[]
var expectedFromPosition = new[]
{
new StoredEvent(streamName, "Position", 2, events2[0]),
new StoredEvent(streamName, "Position", 3, events2[1])
@ -172,7 +172,7 @@ namespace Squidex.Infrastructure.EventSourcing
var readEventsFromBeginning = await QueryWithSubscriptionAsync(streamName, fromBeginning: true);
var expectedFromBeginning = new StoredEvent[]
var expectedFromBeginning = new[]
{
new StoredEvent(streamName, "Position", 0, events1[0]),
new StoredEvent(streamName, "Position", 1, events1[1]),
@ -190,10 +190,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
await Sut.AppendAsync(Guid.NewGuid(), streamName, events);
@ -203,7 +203,7 @@ namespace Squidex.Infrastructure.EventSourcing
var readEvents1 = await QueryAsync(streamName, 1);
var readEvents2 = await QueryWithCallbackAsync(streamName, firstRead[0].EventPosition);
var expected = new StoredEvent[]
var expected = new[]
{
new StoredEvent(streamName, "Position", 1, events[1])
};
@ -217,10 +217,10 @@ namespace Squidex.Infrastructure.EventSourcing
{
var streamName = $"test-{Guid.NewGuid()}";
var events = new EventData[]
var events = new[]
{
new EventData("Type1", new EnvelopeHeaders(), "1"),
new EventData("Type2", new EnvelopeHeaders(), "2"),
new EventData("Type2", new EnvelopeHeaders(), "2")
};
await Sut.AppendAsync(Guid.NewGuid(), streamName, events);
@ -244,16 +244,16 @@ namespace Squidex.Infrastructure.EventSourcing
var streamName1 = $"test-{Guid.NewGuid()}";
var streamName2 = $"test-{Guid.NewGuid()}";
var events1 = new EventData[]
var events1 = new[]
{
new EventData("Type1", keyed1, "1"),
new EventData("Type2", keyed2, "2"),
new EventData("Type2", keyed2, "2")
};
var events2 = new EventData[]
var events2 = new[]
{
new EventData("Type3", keyed2, "3"),
new EventData("Type4", keyed1, "4"),
new EventData("Type4", keyed1, "4")
};
await Sut.CreateIndexAsync("key");
@ -263,7 +263,7 @@ namespace Squidex.Infrastructure.EventSourcing
var readEvents = await QueryWithFilterAsync("key", keyed2["key"].ToString());
var expected = new StoredEvent[]
var expected = new[]
{
new StoredEvent(streamName1, "Position", 1, events1[1]),
new StoredEvent(streamName2, "Position", 0, events2[0])
@ -366,7 +366,7 @@ namespace Squidex.Infrastructure.EventSourcing
}
}
private void ShouldBeEquivalentTo(IEnumerable<StoredEvent> actual, params StoredEvent[] expected)
private static void ShouldBeEquivalentTo(IEnumerable<StoredEvent> actual, params StoredEvent[] expected)
{
var actualArray = actual.Select(x => new StoredEvent(x.StreamName, "Position", x.EventStreamNumber, x.Data)).ToArray();

2
tests/Squidex.Web.Tests/ApiExceptionFilterAttributeTests.cs

@ -51,7 +51,7 @@ namespace Squidex.Web
Assert.Equal(ex.Summary, (result.Value as ErrorDto).Message);
Assert.Equal(new string[] { "Error1", "P: Error2", "P1, P2: Error3" }, (result.Value as ErrorDto).Details);
Assert.Equal(new[] { "Error1", "P: Error2", "P1, P2: Error3" }, (result.Value as ErrorDto).Details);
}
[Fact]

8
tests/Squidex.Web.Tests/ApiPermissionAttributeTests.cs

@ -8,26 +8,22 @@
using System.Collections.Generic;
using System.Security.Claims;
using System.Threading.Tasks;
using FakeItEasy;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Abstractions;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Routing;
using Squidex.Domain.Apps.Entities;
using Squidex.Shared;
using Squidex.Shared.Identity;
using Xunit;
#pragma warning disable IDE0017 // Simplify object initialization
namespace Squidex.Web.Pipeline
namespace Squidex.Web
{
public class ApiPermissionAttributeTests
{
private readonly IAppProvider appProvider = A.Fake<IAppProvider>();
private readonly HttpContext httpContext = new DefaultHttpContext();
private readonly ActionContext actionContext;
private readonly ActionExecutingContext actionExecutingContext;
private readonly ActionExecutionDelegate next;
private readonly ClaimsIdentity user = new ClaimsIdentity();
@ -35,7 +31,7 @@ namespace Squidex.Web.Pipeline
public ApiPermissionAttributeTests()
{
actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor
var actionContext = new ActionContext(httpContext, new RouteData(), new ActionDescriptor
{
FilterDescriptors = new List<FilterDescriptor>()
});

7
tests/Squidex.Web.Tests/Pipeline/CleanupHostMiddlewareTests.cs

@ -14,20 +14,19 @@ namespace Squidex.Web.Pipeline
{
public class CleanupHostMiddlewareTests
{
private readonly RequestDelegate next;
private readonly CleanupHostMiddleware sut;
private bool isNextCalled;
public CleanupHostMiddlewareTests()
{
next = context =>
Task Next(HttpContext context)
{
isNextCalled = true;
return TaskHelper.Done;
};
}
sut = new CleanupHostMiddleware(next);
sut = new CleanupHostMiddleware(Next);
}
[Fact]

2
tools/Migrate_01/Rebuilder.cs

@ -112,7 +112,7 @@ namespace Migrate_01
if (handledIds.Add(id))
{
await worker.SendAsync(id);
await worker.SendAsync(id, ct);
}
}, filter, ct: ct);

Loading…
Cancel
Save