Browse Source

Merge pull request #7 from CraigOates/0.6-p3

0.6 p3
master
Craig Oates 6 years ago committed by GitHub
parent
commit
1235b2bce9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      TestCentre/InputGeneration.fs
  2. 95
      TestCentre/PropertyTests.fs
  3. 1
      TestCentre/TestCentre.fsproj
  4. 79
      TestCentre/UnitTests.fs

17
TestCentre/InputGeneration.fs

@ -0,0 +1,17 @@
module InputGeneration
open System
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)

95
TestCentre/PropertyTests.fs

@ -7,6 +7,7 @@
open TestingConstants
open System.Diagnostics
open System
open InputGeneration
module ``Null Tests`` =
@ -20,68 +21,57 @@
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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 @@
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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 @@
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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
[<Property>]
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)
[<Property>]
let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () =
let test () =

1
TestCentre/TestCentre.fsproj

@ -61,6 +61,7 @@
<Content Include="TextFiles\test-post.txt" />
<Compile Include="AssemblyInfo.fs" />
<Compile Include="TestingConstants.fs" />
<Compile Include="InputGeneration.fs" />
<Compile Include="UnitTests.fs" />
<Compile Include="PropertyTests.fs" />
<None Include="Script.fsx" />

79
TestCentre/UnitTests.fs

@ -5,6 +5,7 @@
open TestingConstants
open System.IO
open System
open InputGeneration
module ``File Access Tests`` =
@ -41,37 +42,27 @@
[<Fact>]
let ``RequestText does not return a null`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result () = Pancake.RequestTextAsync gibberishLevel totalSentences
let result () = Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput())
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using desktop-clock-info`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result = Pancake.RequestTextFromFileAsync gibberishLevel totalSentences DesktopClock
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using console-waterworks-announcement`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result = Pancake.RequestTextFromFileAsync gibberishLevel totalSentences ConsoleWaterworks
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using word-generator`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result = Pancake.RequestTextFromFileAsync gibberishLevel totalSentences WordGenerator
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
Assert.NotNull result
[<Fact>]
let ``RequestTestFromFile does not generate a null when using test-post`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result = Pancake.RequestTextFromFileAsync gibberishLevel totalSentences TestPost
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost
Assert.NotNull result
[<Fact>]
@ -90,46 +81,36 @@
[<Fact>]
let ``RequestText returns a string which contains a full stop`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextAsync gibberishLevel totalSentences
Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput())
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestTextFromFile returns a string which contains a full stop when using console-waterworks-announcement`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences ConsoleWaterworks
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestTextFromFile returns a string which contains a full stop when using desktop-clock-info`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences DesktopClock
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestTextFromFile returns a string which contains a full stop when using test-post`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences TestPost
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestTextFromFile returns a string which contains a full stop when using word-generator`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences WordGenerator
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
|> Async.RunSynchronously
Assert.Contains(".", result)
@ -142,46 +123,36 @@
[<Fact>]
let ``RequestText returns a string which ends with a full stop`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextAsync gibberishLevel totalSentences
Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput())
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestTextFromFile returns a string which ends with a full stop when using console-waterworks-announcement`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences ConsoleWaterworks
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestTextFromFile returns a sting which ends with a full stop when using desktop-clock-info`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences DesktopClock
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestTextFromFile returns a sting which ends with a full stop when using test-post`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences TestPost
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestTextFromFile returns a sting which ends with a full stop when using word-generator`` () =
let gibberishLevel = System.Random().Next(2, 20)
let totalSentences = System.Random().Next(2, 20)
let result =
Pancake.RequestTextFromFileAsync gibberishLevel totalSentences WordGenerator
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
|> Async.RunSynchronously
Assert.EndsWith(".", result)
@ -194,24 +165,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)
[<Fact>]
let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () =
let test () =

Loading…
Cancel
Save