diff --git a/TestCentre/PropertyTests.fs b/TestCentre/PropertyTests.fs index 5c1fca0..7c9a2e6 100644 --- a/TestCentre/PropertyTests.fs +++ b/TestCentre/PropertyTests.fs @@ -7,6 +7,7 @@ open TestingConstants open System.Diagnostics open System + open InputGeneration module ``Null Tests`` = @@ -20,68 +21,57 @@ [] let ``Request Text does not return a null when using fixed input parameters`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + // Change the values for a quick way to manually test the (test) code. let test = - Pancake.RequestTextAsync (gibberishLevel()) (totalSentences()) + Pancake.RequestTextAsync 5 5 |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results [] let ``Request Text does not return a null when using a random gibberish level`` () = - let gibberishLevel () = System.Random().Next(2, 10) let test = - Pancake.RequestTextAsync (gibberishLevel()) 10 + Pancake.RequestTextAsync (ValidGibberishLevelInput()) 5 |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results [] let ``Request Text does not return a null when using a random sentence count`` () = - let totalSentences () = System.Random().Next(2, 10) let test () = - Pancake.RequestTextAsync 5 (totalSentences()) + Pancake.RequestTextAsync 5 (ValidSentencesInput()) |> Async.RunSynchronously let results () = Assert.NotNull test Check.Quick results [] let ``Using desktop-clock-info does not return a null`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) DesktopClock + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results [] let ``Using console-waterworks-announcement does not return a null`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) ConsoleWaterworks + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results [] let ``Using word-generator does not return a null`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) WordGenerator + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results [] let ``Using test-post does not return a null`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) TestPost + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost |> Async.RunSynchronously let results = Assert.NotNull test Check.Quick results @@ -106,50 +96,41 @@ [] let ``RequestText returns a string which contains a full stop`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextAsync (gibberishLevel()) (totalSentences()) + Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) |> Async.RunSynchronously let results = Assert.Contains(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which contains a full stop when using console-waterworks-announcement`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) ConsoleWaterworks + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks |> Async.RunSynchronously let results = Assert.Contains(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which contains a full stop when using desktop-clock-info`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) DesktopClock + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock |> Async.RunSynchronously let results = Assert.Contains(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which contains a full stop when using test-post`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) TestPost + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost |> Async.RunSynchronously let results = Assert.Contains(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which contains a full stop when using word-generator`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) WordGenerator + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator |> Async.RunSynchronously let results = Assert.Contains(".", test) Check.Quick results @@ -164,50 +145,48 @@ [] let ``RequestTest returns a string which ends with a full stop`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) let test = - Pancake.RequestTextAsync (gibberishLevel()) (totalSentences()) + Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) |> Async.RunSynchronously let results = Assert.EndsWith(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which ends with a full stop when using console-waterwork-announcement`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + + let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) ConsoleWaterworks + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks |> Async.RunSynchronously let results = Assert.EndsWith(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which ends with a full stop when using desktop-clock-info`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + + let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) DesktopClock + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock |> Async.RunSynchronously let results = Assert.EndsWith(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which ends with a full stop when using test-post`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + + let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) TestPost + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost |> Async.RunSynchronously let results = Assert.EndsWith(".", test) Check.Quick results [] let ``RequestTextFromFile returns a string which ends with a full stop when using word-generator`` () = - let gibberishLevel () = System.Random().Next(2, 10) - let totalSentences () = System.Random().Next(2, 10) + + let test = - Pancake.RequestTextFromFileAsync (gibberishLevel()) (totalSentences()) WordGenerator + Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator |> Async.RunSynchronously let results = Assert.EndsWith(".", test) Check.Quick results @@ -222,24 +201,6 @@ module ``Exception Tests`` = - // Move this to an input generator module? seperate file? - // Will remove the copy and pasted code up above as well... - // Keep this and property test files about just the tests... - - let ValidGibberishLevelInput () = - let testInputs = [|2 .. 20|] - let index = Random().Next(0, testInputs.Length) - testInputs.[index] - - let ValidSentencesInput () = System.Random().Next(2, 10) - - let InvalidGibberishInput () = - let testInputs = Array.concat [ [|0; 1|] ; [|21 .. 100|] ] - let index = System.Random().Next(0, testInputs.Length) - testInputs.[index] - - let InvalidSentencesInput () = System.Random().Next(-5, 1) - [] let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () = let test () =