From 8645517119a20783c9245da69be01cf9443bfae8 Mon Sep 17 00:00:00 2001 From: Guilherme Branco Stracini Date: Sat, 3 Aug 2024 01:03:02 +0100 Subject: [PATCH] Add basic project --- .dockerignore | 30 ++++++++++++++ HelloWorldMongoDb.sln | 39 +++++++++++++++++++ Src/HelloWorldMongoDb/Dockerfile | 28 +++++++++++++ .../HelloWorldMongoDb.csproj | 16 ++++++++ Src/HelloWorldMongoDb/Program.cs | 12 ++++++ .../Properties/launchSettings.json | 10 +++++ Src/HelloWorldMongoDb/Testable.cs | 9 +++++ .../HelloWorldMongoDb.Tests.csproj | 34 ++++++++++++++++ .../HelloWorldMongoDb.Tests/TestableTests.cs | 19 +++++++++ Tests/HelloWorldMongoDb.Tests/UnitTest1.cs | 19 +++++++++ 10 files changed, 216 insertions(+) create mode 100644 .dockerignore create mode 100644 HelloWorldMongoDb.sln create mode 100644 Src/HelloWorldMongoDb/Dockerfile create mode 100644 Src/HelloWorldMongoDb/HelloWorldMongoDb.csproj create mode 100644 Src/HelloWorldMongoDb/Program.cs create mode 100644 Src/HelloWorldMongoDb/Properties/launchSettings.json create mode 100644 Src/HelloWorldMongoDb/Testable.cs create mode 100644 Tests/HelloWorldMongoDb.Tests/HelloWorldMongoDb.Tests.csproj create mode 100644 Tests/HelloWorldMongoDb.Tests/TestableTests.cs create mode 100644 Tests/HelloWorldMongoDb.Tests/UnitTest1.cs diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..fe1152b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,30 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md +!**/.gitignore +!.git/HEAD +!.git/config +!.git/packed-refs +!.git/refs/heads/** \ No newline at end of file diff --git a/HelloWorldMongoDb.sln b/HelloWorldMongoDb.sln new file mode 100644 index 0000000..dfe2ca6 --- /dev/null +++ b/HelloWorldMongoDb.sln @@ -0,0 +1,39 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.11.35125.118 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HelloWorldMongoDb", "Src\HelloWorldMongoDb\HelloWorldMongoDb.csproj", "{4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Src", "Src", "{7ACF3968-951C-4742-B76F-CDF3A1862A6B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{6A8AA32E-AA77-430D-9853-F6B689BA6F06}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelloWorldMongoDb.Tests", "Tests\HelloWorldMongoDb.Tests\HelloWorldMongoDb.Tests.csproj", "{C6B2C984-D975-4C2B-866C-D28417334DDA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55}.Release|Any CPU.Build.0 = Release|Any CPU + {C6B2C984-D975-4C2B-866C-D28417334DDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6B2C984-D975-4C2B-866C-D28417334DDA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6B2C984-D975-4C2B-866C-D28417334DDA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6B2C984-D975-4C2B-866C-D28417334DDA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {4DC7A2B1-5EE5-4CB5-A506-9CB03C6CDF55} = {7ACF3968-951C-4742-B76F-CDF3A1862A6B} + {C6B2C984-D975-4C2B-866C-D28417334DDA} = {6A8AA32E-AA77-430D-9853-F6B689BA6F06} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0907E77B-B32E-40CA-9517-102D3F055C62} + EndGlobalSection +EndGlobal diff --git a/Src/HelloWorldMongoDb/Dockerfile b/Src/HelloWorldMongoDb/Dockerfile new file mode 100644 index 0000000..02e3244 --- /dev/null +++ b/Src/HelloWorldMongoDb/Dockerfile @@ -0,0 +1,28 @@ +# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging. + +# This stage is used when running from VS in fast mode (Default for Debug configuration) +FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base +USER app +WORKDIR /app + + +# This stage is used to build the service project +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["HelloWorldMongoDb/HelloWorldMongoDb.csproj", "HelloWorldMongoDb/"] +RUN dotnet restore "./HelloWorldMongoDb/HelloWorldMongoDb.csproj" +COPY . . +WORKDIR "/src/HelloWorldMongoDb" +RUN dotnet build "./HelloWorldMongoDb.csproj" -c $BUILD_CONFIGURATION -o /app/build + +# This stage is used to publish the service project to be copied to the final stage +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./HelloWorldMongoDb.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration) +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "HelloWorldMongoDb.dll"] \ No newline at end of file diff --git a/Src/HelloWorldMongoDb/HelloWorldMongoDb.csproj b/Src/HelloWorldMongoDb/HelloWorldMongoDb.csproj new file mode 100644 index 0000000..31b8e7b --- /dev/null +++ b/Src/HelloWorldMongoDb/HelloWorldMongoDb.csproj @@ -0,0 +1,16 @@ + + + + Exe + net8.0 + enable + enable + Linux + + + + + + + + diff --git a/Src/HelloWorldMongoDb/Program.cs b/Src/HelloWorldMongoDb/Program.cs new file mode 100644 index 0000000..e4ad79b --- /dev/null +++ b/Src/HelloWorldMongoDb/Program.cs @@ -0,0 +1,12 @@ +using System.Diagnostics.CodeAnalysis; + +namespace HelloWorldMongoDb; + +[ExcludeFromCodeCoverage] +internal static class Program +{ + static void Main(string[] args) + { + Console.WriteLine("Hello, World!"); + } +} diff --git a/Src/HelloWorldMongoDb/Properties/launchSettings.json b/Src/HelloWorldMongoDb/Properties/launchSettings.json new file mode 100644 index 0000000..daacdc1 --- /dev/null +++ b/Src/HelloWorldMongoDb/Properties/launchSettings.json @@ -0,0 +1,10 @@ +{ + "profiles": { + "HelloWorldMongoDb": { + "commandName": "Project" + }, + "Container (Dockerfile)": { + "commandName": "Docker" + } + } +} \ No newline at end of file diff --git a/Src/HelloWorldMongoDb/Testable.cs b/Src/HelloWorldMongoDb/Testable.cs new file mode 100644 index 0000000..984610e --- /dev/null +++ b/Src/HelloWorldMongoDb/Testable.cs @@ -0,0 +1,9 @@ +namespace HelloWorldMongoDb; + +public class Testable +{ + public bool TestableMethod() + { + return true; + } +} diff --git a/Tests/HelloWorldMongoDb.Tests/HelloWorldMongoDb.Tests.csproj b/Tests/HelloWorldMongoDb.Tests/HelloWorldMongoDb.Tests.csproj new file mode 100644 index 0000000..4934d9e --- /dev/null +++ b/Tests/HelloWorldMongoDb.Tests/HelloWorldMongoDb.Tests.csproj @@ -0,0 +1,34 @@ + + + + net8.0 + enable + enable + + false + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + diff --git a/Tests/HelloWorldMongoDb.Tests/TestableTests.cs b/Tests/HelloWorldMongoDb.Tests/TestableTests.cs new file mode 100644 index 0000000..aafb158 --- /dev/null +++ b/Tests/HelloWorldMongoDb.Tests/TestableTests.cs @@ -0,0 +1,19 @@ +using FluentAssertions; + +namespace HelloWorldMongoDb.Tests; + +public class TestableTests +{ + [Fact] + public void TestableMethod_StateUnderTest_ExpectedBehavior() + { + // Arrange + var testable = new Testable(); + + // Act + var result = testable.TestableMethod(); + + // Assert + result.Should().BeTrue(); + } +} diff --git a/Tests/HelloWorldMongoDb.Tests/UnitTest1.cs b/Tests/HelloWorldMongoDb.Tests/UnitTest1.cs new file mode 100644 index 0000000..8ad0f3d --- /dev/null +++ b/Tests/HelloWorldMongoDb.Tests/UnitTest1.cs @@ -0,0 +1,19 @@ +using FluentAssertions; + +namespace HelloWorldMongoDb.Tests; + +public class UnitTest1 +{ + [Fact] + public void Test1() + { + // Arrange + const bool expected = true; + + // Act + var value = true; + + // Assert + value.Should().Be(expected); + } +}