Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 20 additions & 19 deletions src/ByteSync.Client/ByteSync.Client.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -53,26 +53,26 @@
<ItemGroup>
<PackageReference Include="Autofac" Version="8.4.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Avalonia" Version="11.3.6"/>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.6"/>
<PackageReference Include="Avalonia.Desktop" Version="11.3.6"/>
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.6"/>
<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.6"/>
<PackageReference Include="Avalonia" Version="11.3.9"/>
<PackageReference Include="Avalonia.Controls.DataGrid" Version="11.3.9"/>
<PackageReference Include="Avalonia.Desktop" Version="11.3.9"/>
<PackageReference Include="Avalonia.Diagnostics" Version="11.3.9"/>
<PackageReference Include="Avalonia.ReactiveUI" Version="11.3.8"/>
<PackageReference Include="Avalonia.Svg.Skia" Version="11.3.0" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.6"/>
<PackageReference Include="Avalonia.Markup.Xaml.Loader" Version="11.3.6"/>
<PackageReference Include="Azure.Storage.Blobs" Version="12.25.0" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.3.9"/>
<PackageReference Include="Avalonia.Markup.Xaml.Loader" Version="11.3.9"/>
<PackageReference Include="Azure.Storage.Blobs" Version="12.26.0"/>
<PackageReference Include="DynamicData" Version="9.4.1" />
<PackageReference Include="FastRsyncNet" Version="2.4.4"/>
<PackageReference Include="LiveChartsCore.SkiaSharpView.Avalonia" Version="2.0.0-beta.700" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.20"/>
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.22"/>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.20"/>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="8.0.22"/>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
<PackageReference Include="Polly" Version="8.6.2" />
<PackageReference Include="Polly" Version="8.6.5"/>
<PackageReference Include="ReactiveMarbles.ObservableEvents.SourceGenerator" Version="1.3.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand All @@ -81,20 +81,21 @@
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="Serilog.Extensions.Autofac.DependencyInjection" Version="5.0.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="2.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="6.1.1"/>
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
<PackageReference Include="SharpZipLib" Version="1.4.2" />
<PackageReference Include="SkiaSharp" Version="3.119.0" />
<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="3.119.0" />
<PackageReference Include="SkiaSharp.NativeAssets.macOS" Version="3.119.0" />
<PackageReference Include="SkiaSharp.NativeAssets.Win32" Version="3.119.0" />
<PackageReference Include="SkiaSharp" Version="3.119.1"/>
<PackageReference Include="SkiaSharp.NativeAssets.Linux" Version="3.119.1"/>
<PackageReference Include="SkiaSharp.NativeAssets.macOS" Version="3.119.1"/>
<PackageReference Include="SkiaSharp.NativeAssets.Win32" Version="3.119.1"/>
<PackageReference Include="Splat" Version="15.4.1"/>
<PackageReference Include="Splat.Autofac" Version="15.4.1" />
<PackageReference Include="Splat.Serilog" Version="17.1.1"/>
<PackageReference Include="System.Reactive" Version="6.0.2"/>
<PackageReference Include="Splat.Serilog" Version="15.4.1"/>
<PackageReference Include="System.Reactive" Version="6.1.0"/>
<PackageReference Include="System.Security.Cryptography.Cng" Version="5.0.0" />
<PackageReference Include="System.Security.Cryptography.OpenSsl" Version="5.0.0" />
<PackageReference Update="Packaging.Targets" Version="0.1.232" />
<PackageReference Include="Xaml.Behaviors.Avalonia" Version="11.3.6.2"/>
<PackageReference Include="Xaml.Behaviors.Avalonia" Version="11.3.9"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ByteSync.Common\ByteSync.Common.csproj" />
Expand Down
2 changes: 1 addition & 1 deletion src/ByteSync.Common/ByteSync.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
<PackageReference Include="Serilog" Version="4.3.0" />
<PackageReference Include="System.IO.Abstractions" Version="22.0.16"/>
<PackageReference Include="System.IO.Abstractions" Version="22.1.0"/>
</ItemGroup>

</Project>
6 changes: 3 additions & 3 deletions src/ByteSync.Functions/ByteSync.Functions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<ItemGroup>
<PackageReference Include="Autofac" Version="8.4.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageReference Include="Azure.Identity" Version="1.16.0"/>
<PackageReference Include="Azure.Identity" Version="1.17.1"/>
<PackageReference Include="MediatR" Version="12.5.0" />
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.23.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker" Version="1.23.0" />
Expand All @@ -20,14 +20,14 @@
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.3.1" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.18.1" />
<PackageReference Include="Microsoft.Azure.AppConfiguration.AspNetCore" Version="8.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.20"/>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.22"/>
<PackageReference Include="Microsoft.Azure.SignalR" Version="1.32.0"/>
<PackageReference Include="Microsoft.Azure.SignalR.Management" Version="1.32.0"/>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
<PackageReference Include="RedLock.net" Version="2.3.2" />
<PackageReference Include="StackExchange.Redis" Version="2.9.17"/>
<PackageReference Include="StackExchange.Redis" Version="2.10.1"/>
</ItemGroup>
<ItemGroup>
<None Update="host.json">
Expand Down
26 changes: 13 additions & 13 deletions src/ByteSync.ServerCommon/ByteSync.ServerCommon.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.S3" Version="4.0.7.4"/>
<PackageReference Include="Azure.Identity" Version="1.16.0"/>
<PackageReference Include="Azure.Storage.Blobs" Version="12.25.0" />
<PackageReference Include="MediatR" Version="12.5.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.20"/>
<PackageReference Include="AWSSDK.S3" Version="4.0.13.1"/>
<PackageReference Include="Azure.Identity" Version="1.17.1"/>
<PackageReference Include="Azure.Storage.Blobs" Version="12.26.0"/>
<PackageReference Include="MediatR" Version="12.5.0"/>
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.22"/>
<PackageReference Include="Microsoft.Azure.SignalR" Version="1.32.0"/>
<PackageReference Include="Microsoft.Azure.SignalR.Management" Version="1.32.0"/>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3" />
<PackageReference Include="Polly" Version="8.6.3"/>
<PackageReference Include="RedLock.net" Version="2.3.2" />
<PackageReference Include="StackExchange.Redis" Version="2.9.17"/>
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0"/>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1"/>
<PackageReference Include="Microsoft.Extensions.Http" Version="8.0.1"/>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.3"/>
<PackageReference Include="Polly" Version="8.6.5"/>
<PackageReference Include="RedLock.net" Version="2.3.2"/>
<PackageReference Include="StackExchange.Redis" Version="2.10.1"/>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\ByteSync.Common\ByteSync.Common.csproj" />
<ProjectReference Include="..\ByteSync.Common\ByteSync.Common.csproj"/>
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.10.0">
<PackageReference Include="NUnit.Analyzers" Version="4.11.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="NUnit3TestAdapter" Version="5.1.0" />
<PackageReference Include="Avalonia.Headless" Version="11.3.6"/>
<PackageReference Include="Avalonia.Headless.NUnit" Version="11.3.6"/>
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0"/>
<PackageReference Include="Avalonia.Headless" Version="11.3.9"/>
<PackageReference Include="Avalonia.Headless.NUnit" Version="11.3.9"/>
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
<ItemGroup>
<PackageReference Include="AwesomeAssertions" Version="8.0.1"/>
<PackageReference Include="DynamicData" Version="9.4.1"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="Moq" Version="4.20.72"/>
<PackageReference Include="NUnit" Version="4.4.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="5.1.0"/>
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0"/>
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="ReactiveUI.Testing" Version="21.0.1"/>
<PackageReference Include="ReactiveUI.Testing" Version="19.5.41"/>
</ItemGroup>

<ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions tests/ByteSync.Common.Tests/ByteSync.Common.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@

<ItemGroup>
<PackageReference Include="AwesomeAssertions" Version="8.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="Moq" Version="4.20.72" />
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.1.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0"/>
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,18 +18,18 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.0.1"/>
<PackageReference Include="NUnit" Version="4.4.0" />
<PackageReference Include="NUnit3TestAdapter" Version="5.1.0" />
<PackageReference Include="NUnit.Analyzers" Version="4.10.0">
<PackageReference Include="NUnit3TestAdapter" Version="5.2.0"/>
<PackageReference Include="NUnit.Analyzers" Version="4.11.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Testcontainers" Version="4.7.0"/>
<PackageReference Include="Testcontainers" Version="4.9.0"/>
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
using System.Diagnostics;
using DotNet.Testcontainers.Builders;
using FluentAssertions;
using ContainerBuilder = DotNet.Testcontainers.Builders.ContainerBuilder;
using IContainer = DotNet.Testcontainers.Containers.IContainer;
using FluentAssertions;

namespace ByteSync.Functions.IntegrationTests.End2End;

public class E2E_Environment_Setup
{
public IContainer Azurite { get; private set; } = null!;

public IContainer Functions { get; private set; } = null!;

public HttpClient Http { get; private set; } = null!;

public async Task InitializeAsync()
{
Azurite = new ContainerBuilder()
Expand All @@ -20,29 +22,34 @@ public async Task InitializeAsync()
.WithPortBinding(10000, 10000)
.WithPortBinding(10001, 10001)
.WithPortBinding(10002, 10002)
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(10000))
.WithWaitStrategy(Wait.ForUnixContainer().UntilInternalTcpPortIsAvailable(10000))
.Build();

using (var azuriteCts = new CancellationTokenSource(TimeSpan.FromSeconds(90)))
{
await Azurite.StartAsync(azuriteCts.Token);
}

string ResolveFunctionsProjectRoot()
{
var dir = new DirectoryInfo(TestContext.CurrentContext.TestDirectory);
while (dir != null && !File.Exists(Path.Combine(dir.FullName, "ByteSync.sln")))
{
dir = dir.Parent;
}

if (dir != null)
{
var candidate = Path.Combine(dir.FullName, "src", "ByteSync.Functions");
if (Directory.Exists(candidate)) return candidate;
if (Directory.Exists(candidate))
{
return candidate;
}
}

return Path.GetFullPath(Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\..\..\..\src\ByteSync.Functions"));
}

var projectRoot = ResolveFunctionsProjectRoot();
var publishDir = Path.Combine(Path.GetTempPath(), $"bytesync-func-pub-{Guid.NewGuid():N}");
Directory.CreateDirectory(publishDir);
Expand All @@ -52,44 +59,43 @@ string ResolveFunctionsProjectRoot()
Arguments = $"publish \"{projectRoot}\" -c Release -o \"{publishDir}\"",
UseShellExecute = false
};

using var publish = new Process { StartInfo = startInfo };

using var publish = new Process();
publish.StartInfo = startInfo;
publish.Start();
await publish.WaitForExitAsync();
publish.ExitCode.Should().Be(0);

var cfg = GlobalTestSetup.Configuration;
var env = new Dictionary<string, string>
{
["AzureWebJobsStorage"] = cfg["AzureWebJobsStorage"]!,
["AppSettings__SkipClientsVersionCheck"] = "True" ,
["AppSettings__SkipClientsVersionCheck"] = "True",
["Redis__ConnectionString"] = cfg["Redis:ConnectionString"]!,
["SignalR__ConnectionString"] = cfg["SignalR:ConnectionString"]!,
["AppSettings__Secret"] = cfg["AppSettings:Secret"]!,
["AzureBlobStorage__Endpoint"] = cfg["AzureBlobStorage:Endpoint"]!,
["AzureBlobStorage__AccountName"] = cfg["AzureBlobStorage:AccountName"]!,
["AzureBlobStorage__AccountKey"] = cfg["AzureBlobStorage:AccountKey"]!,
["AzureBlobStorage__Container"] = cfg["AzureBlobStorage:Container"]!
["AzureBlobStorage__Container"] = cfg["AzureBlobStorage:Container"]!
};

var functionsBuilder = new ContainerBuilder()
.WithImage("mcr.microsoft.com/azure-functions/dotnet-isolated:4-dotnet-isolated8.0")
.WithName($"bytesync-functions-e2e-{Guid.NewGuid():N}")
.WithPortBinding(7071, 80)
.WithBindMount(publishDir, "/home/site/wwwroot")
.WithEnvironment(env)
.WithWaitStrategy(Wait.ForUnixContainer().UntilHttpRequestIsSucceeded(
req => req
.ForPort(80)
.ForPath("/api/announcements")));

.WithWaitStrategy(Wait.ForUnixContainer().UntilHttpRequestIsSucceeded(req => req
.ForPort(80)
.ForPath("/api/announcements")));

Functions = functionsBuilder.Build();
using var funcCts = new CancellationTokenSource(TimeSpan.FromMinutes(5));
await Functions.StartAsync(funcCts.Token);

Http = new HttpClient { BaseAddress = new Uri("http://localhost:7071/api/") };
Http.DefaultRequestHeaders.Add("User-Agent", "ByteSync-E2E-Test");
await Task.Delay(1000, funcCts.Token);
}

}
}
Loading
Loading