Browse Source

Got working exception tests for RequestText funtion.

Still rough and needs to be finished but it is now working. ("lazy" is a big help here.)
master
Craig Oates 6 years ago
parent
commit
a85deda44e
  1. 20
      TestCentre/PropertyTests.fs
  2. 13
      TestCentre/UnitTests.fs
  3. 2
      WetPancake/DataProcessing.fs
  4. 2
      WetPancake/ProductServices.fs
  5. 7
      WetPancake/Script.fsx

20
TestCentre/PropertyTests.fs

@ -220,7 +220,23 @@
Check.Quick results
module ``Exception Tests`` =
open System
open System.Threading.Tasks
let temp = "begin"
// YOU ARE HERE -- WRITE EXCEPTION TESTS (DON'T FOGET UNIT TESTS).
[<Property>]
let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () =
//let gibberishLevel () = System.Random().Next(0, 1)
let totalSentences () = System.Random().Next(2, 10)
let test =
Pancake.RequestTextAsync 0 (totalSentences())
|> Async.RunSynchronously
let results =
lazy Assert.Throws<ArgumentException>(fun () -> test |> ignore)
|> ignore
Check.Quick results
// YOU ARE HERE -- WRITE EXCEPTION TESTS (DON'T FOGET UNIT TESTS).
(*
let SentencesIsValid sentences =
let FilePathIsValid filePath
*)

13
TestCentre/UnitTests.fs

@ -4,6 +4,7 @@
open WetPancake
open TestingConstants
open System.IO
open System
module ``File Access Tests`` =
@ -193,6 +194,12 @@
module ``Exception Tests`` =
let temp = "begin"
// YOU ARE HERE -- WRITE EXCEPTION TESTS (DON'T FOGET PROPERTY TESTS).
// YOU ARE HERE -- WRITE EXCEPTION TESTS (DON'T FOGET PROPERTY TESTS).
[<Fact>]
let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () =
//let gibberishLevel () = System.Random().Next(0, 1)
//let totalSentences () = System.Random().Next(2, 10)
let test () =
Pancake.RequestTextAsync 34 0
|> Async.RunSynchronously
lazy Assert.Throws<ArgumentException>(fun () -> test |> ignore) |> ignore

2
WetPancake/DataProcessing.fs

@ -12,7 +12,7 @@
let GibberishLevelIsValid gibberishLevel =
match gibberishLevel with
| gibberishLevel when gibberishLevel < 2 || gibberishLevel > 20 ->
raise (ArgumentException("Invalid argument. Must be between 2 and 20 (inclusive).", "gibberishLevel"))
raise (new ArgumentException("Invalid argument. Must be between 2 and 20 (inclusive).", "gibberishLevel"))
| _ -> ignore
let SentencesIsValid sentences =

2
WetPancake/ProductServices.fs

@ -19,7 +19,7 @@ module Pancake =
|> SortIntoGroups (PickRandomNumber 2 10)
|> GenerateMap
return GenerateMarkovText (PickRandomNumber 2 10) data
}
}
// TODO: Write tests for the validation checks (throws exceptions)
let RequestTextAsync (gibberishLevel: int) (sentences: int) =

7
WetPancake/Script.fsx

@ -80,6 +80,13 @@ let dp_combine4 =
let next = null
CombineWords prev next
(* Functions to include:
=====================
1.) GibberishLevelIsValid
2.) SentencesIsValid
3.) FilePathIsValid
*)
// Data Structuring
let ds_map = Map.empty
let ds_text = [|"This"; "is"; "a"; "test"; "string."|]

Loading…
Cancel
Save