Skip to content

Commit

Permalink
Adding unit tests for server validations.
Browse files Browse the repository at this point in the history
  • Loading branch information
ScottArbeit committed Feb 13, 2023
1 parent fd0a699 commit 3b8c249
Show file tree
Hide file tree
Showing 6 changed files with 207 additions and 40 deletions.
4 changes: 4 additions & 0 deletions Grace.Server.Tests/General.Server.Tests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ open NUnit.Framework
open System
open System.Net.Http.Json

module Common =
let okResult: Result<unit, string> = Result.Ok ()
let errorResult: Result<unit, string> = Result.Error "error"

module Services =
let public Factory = (new WebApplicationFactory<Grace.Server.Application.Startup>()).WithWebHostBuilder(fun builder ->
builder.UseEnvironment("Development")
Expand Down
2 changes: 2 additions & 0 deletions Grace.Server.Tests/Grace.Server.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@

<ItemGroup>
<Compile Include="General.Server.Tests.fs" />
<Compile Include="Validations.Server.Tests.fs" />
<Compile Include="Repository.Server.Tests.fs" />
<Compile Include="Program.fs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="FsUnit" Version="5.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.2" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="NUnit" Version="3.13.3" />
Expand Down
60 changes: 24 additions & 36 deletions Grace.Server.Tests/Repository.Server.Tests.fs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetDescriptionWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.DescriptionParameters()
Expand All @@ -26,8 +26,7 @@ type Repository() =
parameters.OrganizationId <- "1a354bba-2973-41cd-8572-cb71d535bb52"
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setDescription", jsonContent)
let! response = Services.Client.PostAsync("/repository/setDescription", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -36,7 +35,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetDescriptionWithInvalidValues() =
task {
let parameters = Parameters.Repository.DescriptionParameters()
Expand All @@ -45,8 +44,7 @@ type Repository() =
parameters.OrganizationId <- Guid.NewGuid().ToString()
parameters.RepositoryId <- "not a guid"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setDescription", jsonContent)
let! response = Services.Client.PostAsync("/repository/setDescription", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand All @@ -55,7 +53,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetSaveDaysWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.SaveDaysParameters()
Expand All @@ -64,8 +62,7 @@ type Repository() =
parameters.OrganizationId <- "1a354bba-2973-41cd-8572-cb71d535bb52"
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setSaveDays", jsonContent)
let! response = Services.Client.PostAsync("/repository/setSaveDays", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -74,7 +71,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetSaveDaysWithInvalidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.SaveDaysParameters()
Expand All @@ -83,8 +80,7 @@ type Repository() =
parameters.OrganizationId <- Guid.NewGuid().ToString()
parameters.RepositoryId <- Guid.NewGuid().ToString()

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setSaveDays", jsonContent)
let! response = Services.Client.PostAsync("/repository/setSaveDays", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand All @@ -93,7 +89,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetCheckpointDaysWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.CheckpointDaysParameters()
Expand All @@ -102,8 +98,7 @@ type Repository() =
parameters.OrganizationId <- "1a354bba-2973-41cd-8572-cb71d535bb52"
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setCheckpointDays", jsonContent)
let! response = Services.Client.PostAsync("/repository/setCheckpointDays", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -112,7 +107,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetCheckpointDaysWithInvalidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.CheckpointDaysParameters()
Expand All @@ -121,8 +116,7 @@ type Repository() =
parameters.OrganizationId <- Guid.NewGuid().ToString()
parameters.RepositoryId <- Guid.NewGuid().ToString()

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setCheckpointDays", jsonContent)
let! response = Services.Client.PostAsync("/repository/setCheckpointDays", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand All @@ -131,16 +125,15 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.GetBranchesWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.GetBranchesParameters()
parameters.OwnerId <- "c7fadc8b-17ee-4832-86e2-520ccc1d630d"
parameters.OrganizationId <- "1a354bba-2973-41cd-8572-cb71d535bb52"
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/getBranches", jsonContent)
let! response = Services.Client.PostAsync("/repository/getBranches", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -149,16 +142,15 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.GetBranchesWithInvalidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.GetBranchesParameters()
parameters.OwnerId <- "not a Guid"
parameters.OrganizationId <- Guid.NewGuid().ToString()
parameters.RepositoryId <- Guid.NewGuid().ToString()

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/getBranches", jsonContent)
let! response = Services.Client.PostAsync("/repository/getBranches", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand All @@ -167,7 +159,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetStatusWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.StatusParameters()
Expand All @@ -176,8 +168,7 @@ type Repository() =
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"
parameters.Status <- "Active"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setStatus", jsonContent)
let! response = Services.Client.PostAsync("/repository/setStatus", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -186,7 +177,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetStatusWithInvalidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.StatusParameters()
Expand All @@ -195,8 +186,7 @@ type Repository() =
parameters.RepositoryId <- Guid.NewGuid().ToString()
parameters.Status <- "Active"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setStatus", jsonContent)
let! response = Services.Client.PostAsync("/repository/setStatus", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand All @@ -205,7 +195,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetVisibilityWithValidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.VisibilityParameters()
Expand All @@ -214,8 +204,7 @@ type Repository() =
parameters.RepositoryId <- "a9e5fe8a-832f-4b5d-afe5-c19773774dd6"
parameters.Visibility <- "Public"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setVisibility", jsonContent)
let! response = Services.Client.PostAsync("/repository/setVisibility", jsonContent parameters)
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
response.EnsureSuccessStatusCode() |> ignore
Expand All @@ -224,7 +213,7 @@ type Repository() =

[<Test>]
[<Parallelizable>]
[<Repeat(5)>]
[<Repeat(1)>]
member public this.SetVisibilityWithInvalidValues() =
task {
let parameters = Grace.Shared.Parameters.Repository.VisibilityParameters()
Expand All @@ -233,8 +222,7 @@ type Repository() =
parameters.RepositoryId <- "not a Guid"
parameters.Visibility <- "Public"

let jsonContent = JsonContent.Create(parameters, options = Constants.JsonSerializerOptions)
let! response = Services.Client.PostAsync("/repository/setVisibility", jsonContent)
let! response = Services.Client.PostAsync("/repository/setVisibility", jsonContent parameters)
Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.BadRequest))
let! content = response.Content.ReadAsStringAsync()
Console.WriteLine($"{content}");
Expand Down
Loading

0 comments on commit 3b8c249

Please sign in to comment.