diff --git a/OddsCollector.Functions.Tests/Functions/EventResultsFunctionTests.cs b/OddsCollector.Functions.Tests/Functions/EventResultsFunctionTests.cs index 65acf06..9e21d42 100644 --- a/OddsCollector.Functions.Tests/Functions/EventResultsFunctionTests.cs +++ b/OddsCollector.Functions.Tests/Functions/EventResultsFunctionTests.cs @@ -49,7 +49,7 @@ public void Constructor_WithNullLogger_ThrowsException() [Test] public async Task Run_WithValidParameters_ReturnsEventResults() { - IEnumerable expectedEventResults = []; + IEnumerable expectedEventResults = new List(); var loggerStub = Substitute.For>(); diff --git a/OddsCollector.Functions.Tests/Functions/PredictionFunctionTests.cs b/OddsCollector.Functions.Tests/Functions/PredictionFunctionTests.cs index 66baef4..d800b53 100644 --- a/OddsCollector.Functions.Tests/Functions/PredictionFunctionTests.cs +++ b/OddsCollector.Functions.Tests/Functions/PredictionFunctionTests.cs @@ -76,7 +76,7 @@ public async Task Run_WithServiceBusMessage_ReturnsEventPrediction() .SetTimestamp(DateTime.Now) .SetWinner("Manchester City").Instance; - ServiceBusReceivedMessage[] receivedmessages = + ServiceBusReceivedMessage[] receivedMessages = [ServiceBusReceivedMessageFactory.CreateFromObject(upcomingEvent)]; var actionsMock = Substitute.For(); @@ -88,12 +88,12 @@ public async Task Run_WithServiceBusMessage_ReturnsEventPrediction() var token = new CancellationToken(); - var prediction = await function.Run(receivedmessages, actionsMock, token).ConfigureAwait(false); + var prediction = await function.Run(receivedMessages, actionsMock, token).ConfigureAwait(false); prediction.Should().NotBeNull().And.HaveCount(1); prediction[0].Should().NotBeNull().And.Be(expectedPrediction); - await actionsMock.Received(Quantity.Exactly(1)).CompleteMessageAsync(receivedmessages[0], token); + await actionsMock.Received(Quantity.Exactly(1)).CompleteMessageAsync(receivedMessages[0], token); } [Test] @@ -134,7 +134,7 @@ public async Task Run_WithInvalidItems_ReturnsSucessfuallyProcessedEventPredicti .SetTimestamp(DateTime.Now) .SetWinner("Manchester City").Instance; - ServiceBusReceivedMessage[] receivedmessages = + ServiceBusReceivedMessage[] receivedMessages = [ ServiceBusReceivedMessageFactory.CreateFromObject(badUpcomingEvent), ServiceBusReceivedMessageFactory.CreateFromObject(goodUpcomingEvent) @@ -146,18 +146,18 @@ public async Task Run_WithInvalidItems_ReturnsSucessfuallyProcessedEventPredicti var strategyStub = Substitute.For(); strategyStub.GetPrediction(Arg.Any(), Arg.Any()) - .Returns(x => { throw exception; }, x => expectedPrediction); + .Returns(x => throw exception, x => expectedPrediction); var function = new PredictionFunction(loggerMock, strategyStub); var token = new CancellationToken(); - var prediction = await function.Run(receivedmessages, actionsMock, token).ConfigureAwait(false); + var prediction = await function.Run(receivedMessages, actionsMock, token).ConfigureAwait(false); prediction.Should().NotBeNull().And.HaveCount(1); prediction[0].Should().NotBeNull().And.Be(expectedPrediction); - await actionsMock.Received(Quantity.Exactly(1)).CompleteMessageAsync(receivedmessages[1], token); + await actionsMock.Received(Quantity.Exactly(1)).CompleteMessageAsync(receivedMessages[1], token); var receivedCalls = loggerMock.ReceivedCalls().ToList(); diff --git a/OddsCollector.Functions.Tests/Functions/UpcomingEventsFunctionTest.cs b/OddsCollector.Functions.Tests/Functions/UpcomingEventsFunctionTest.cs index 070de1b..428f605 100644 --- a/OddsCollector.Functions.Tests/Functions/UpcomingEventsFunctionTest.cs +++ b/OddsCollector.Functions.Tests/Functions/UpcomingEventsFunctionTest.cs @@ -49,7 +49,7 @@ public void Constructor_WithNullOddsClient_ThrowsException() [Test] public async Task Run_WithValidParameters_ReturnsEventResults() { - IEnumerable expectedEventResults = []; + IEnumerable expectedEventResults = new List(); var loggerStub = Substitute.For>(); diff --git a/OddsCollector.Functions.Tests/OddsApi/Configuration/OddsApiOptionsTests.cs b/OddsCollector.Functions.Tests/OddsApi/Configuration/OddsApiOptionsTests.cs index afbd1d4..0948fab 100644 --- a/OddsCollector.Functions.Tests/OddsApi/Configuration/OddsApiOptionsTests.cs +++ b/OddsCollector.Functions.Tests/OddsApi/Configuration/OddsApiOptionsTests.cs @@ -8,7 +8,7 @@ internal sealed class OddsApiOptionsTests [Test] public void SetLeagues_WithValidLeague_ReturnsThisLeague() { - string league = nameof(league); + const string league = nameof(league); var options = new OddsApiClientOptions(); options.AddLeagues(league); @@ -20,7 +20,7 @@ public void SetLeagues_WithValidLeague_ReturnsThisLeague() [Test] public void SetLeagues_WithValidLeagues_ReturnsTheseLeagues() { - var leagues = "league1;league2"; + const string leagues = "league1;league2"; var options = new OddsApiClientOptions(); options.AddLeagues(leagues); @@ -33,7 +33,7 @@ public void SetLeagues_WithValidLeagues_ReturnsTheseLeagues() [Test] public void SetLeagues_WithOneEmptyLeague_ReturnsNonEmptyLeagues() { - var leagues = "league1;;league2"; + const string leagues = "league1;;league2"; var options = new OddsApiClientOptions(); options.AddLeagues(leagues); @@ -46,7 +46,7 @@ public void SetLeagues_WithOneEmptyLeague_ReturnsNonEmptyLeagues() [Test] public void SetLeagues_WithDuplicatedLeagues_ReturnsNewInstance() { - var leagues = "league1;league1"; + const string leagues = "league1;league1"; var options = new OddsApiClientOptions(); options.AddLeagues(leagues); @@ -71,7 +71,7 @@ public void SetLeagues_WithNullOrEmptyLeagues_ThrowsException(string? leaguesStr [Test] public void SetApiKey_WithValidKey_ReturnsThisKey() { - string key = nameof(key); + const string key = nameof(key); var options = new OddsApiClientOptions(); options.SetApiKey(key); diff --git a/OddsCollector.Functions/Functions/EventResultsFunction.cs b/OddsCollector.Functions/Functions/EventResultsFunction.cs index 1693eba..2ce3d11 100644 --- a/OddsCollector.Functions/Functions/EventResultsFunction.cs +++ b/OddsCollector.Functions/Functions/EventResultsFunction.cs @@ -18,7 +18,8 @@ internal class EventResultsFunction(ILogger? logger, IOdds [Function(nameof(EventResultsFunction))] [CosmosDBOutput("%CosmosDb:Database%", "%CosmosDb:EventResultsContainer%", Connection = "CosmosDb:Connection")] public async Task Run( - [TimerTrigger("%EventResultsFunction:TimerInterval%")] CancellationToken cancellationToken) + [TimerTrigger("%EventResultsFunction:TimerInterval%")] + CancellationToken cancellationToken) { try { diff --git a/OddsCollector.Functions/Functions/PredictionFunction.cs b/OddsCollector.Functions/Functions/PredictionFunction.cs index 604d8d7..847e99f 100644 --- a/OddsCollector.Functions/Functions/PredictionFunction.cs +++ b/OddsCollector.Functions/Functions/PredictionFunction.cs @@ -15,24 +15,24 @@ internal class PredictionFunction(ILogger? logger, IPredicti [CosmosDBOutput("%CosmosDb:Database%", "%CosmosDb:EventPredictionsContainer%", Connection = "CosmosDb:Connection")] public async Task Run( [ServiceBusTrigger("%ServiceBus:Queue%", Connection = "ServiceBus:Connection", IsBatched = true)] - ServiceBusReceivedMessage[] messages, ServiceBusMessageActions messageActions, + IEnumerable messages, ServiceBusMessageActions messageActions, CancellationToken cancellationToken) { List predictions = []; - for (var i = 0; i < messages.Length; i++) + foreach (var message in messages) { try { - var upcomingEvent = messages[i].Body.ToObjectFromJson(); + var upcomingEvent = message.Body.ToObjectFromJson(); predictions.Add(_strategy.GetPrediction(upcomingEvent, DateTime.UtcNow)); - await messageActions.CompleteMessageAsync(messages[i], cancellationToken).ConfigureAwait(false); + await messageActions.CompleteMessageAsync(message, cancellationToken).ConfigureAwait(false); } catch (Exception exception) { - _logger.LogError(exception, "Failed to convert message with id {Id}", messages[i].MessageId); + _logger.LogError(exception, "Failed to convert message with id {Id}", message.MessageId); } } diff --git a/OddsCollector.Functions/Functions/PredictionsHttpFunction.cs b/OddsCollector.Functions/Functions/PredictionsHttpFunction.cs index b31690f..e08479a 100644 --- a/OddsCollector.Functions/Functions/PredictionsHttpFunction.cs +++ b/OddsCollector.Functions/Functions/PredictionsHttpFunction.cs @@ -10,7 +10,7 @@ namespace OddsCollector.Functions.Functions; internal class PredictionsHttpFunction(ILogger logger) { - private static readonly JsonSerializerOptions _serializerOptions = new() { WriteIndented = true }; + private static readonly JsonSerializerOptions SerializerOptions = new() { WriteIndented = true }; private readonly ILogger _logger = logger ?? throw new ArgumentNullException(nameof(logger)); @@ -26,7 +26,7 @@ public HttpResponseData Run( Id = "id", PartitionKey = "id", SqlQuery = "SELECT * FROM EventPredictions p WHERE p.CommenceTime > GetCurrentDateTime()")] - EventPrediction[] predictions, CosmosClient client, Database database, Container container) + IEnumerable predictions, CosmosClient client, Database database, Container container) { try { @@ -35,7 +35,7 @@ public HttpResponseData Run( var grouped = predictions.GroupBy(p => p.Id) .Select(group => group.OrderByDescending(p => p.Timestamp).First()).ToList(); - var serialized = JsonSerializer.Serialize(grouped, _serializerOptions); + var serialized = JsonSerializer.Serialize(grouped, SerializerOptions); var response = request.CreateResponse(HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); @@ -45,7 +45,7 @@ public HttpResponseData Run( } catch (Exception exception) { - var message = "Failed to return predictions"; + const string message = "Failed to return predictions"; _logger.LogError(exception, message); diff --git a/OddsCollector.Functions/Functions/UpcomingEventsFunction.cs b/OddsCollector.Functions/Functions/UpcomingEventsFunction.cs index 00928c5..d097c54 100644 --- a/OddsCollector.Functions/Functions/UpcomingEventsFunction.cs +++ b/OddsCollector.Functions/Functions/UpcomingEventsFunction.cs @@ -15,7 +15,8 @@ private readonly ILogger [Function(nameof(UpcomingEventsFunction))] [ServiceBusOutput("%ServiceBus:Queue%", Connection = "ServiceBus:Connection")] public async Task Run( - [TimerTrigger("%UpcomingEventsFunction:TimerInterval%")] CancellationToken cancellationToken) + [TimerTrigger("%UpcomingEventsFunction:TimerInterval%")] + CancellationToken cancellationToken) { try {