The purpose of this repository is to provide a way for people to generate random "placeholder text" -- with a Markov Chain. https://www.craigoates.net/Software/project/12
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

191 lines
8.1 KiB

module ``Unit Tests``
open Xunit
open WetPancake
open TestingConstants
open System.IO
open System
open InputGeneration
module ``File Access Tests`` =
(* These tests check to see if the .txt files exists in the Test Centre project.
The WetPancake library does not expose the file access functions so the .txt files are mirrored here (in Test Centre).
The mirroring, also, doubles up as sample files to pass into WetPancake. *)
[<Fact>]
let ``desktop-clock-info can be found`` () =
let result = File.Exists DesktopClock
Assert.Equal(true, result);
[<Fact>]
let ``console-waterworks-announcements can be found`` () =
let result = File.Exists ConsoleWaterworks
Assert.Equal(true, result);
[<Fact>]
let ``word-generator can be found`` () =
let result = File.Exists WordGenerator
Assert.Equal(true, result);
[<Fact>]
let ``test-post can be found`` () =
let result = File.Exists TestPost
Assert.Equal(true, result)
module ``Null Tests`` =
[<Fact>]
let ``RequestRandomText does not return a null`` () =
let result = Pancake.RequestRandomTextAsync ()
Assert.NotNull result
[<Fact>]
let ``RequestText does not return a null`` () =
let result () = Pancake.RequestTextAsync (ValidGibberishLevelInput()) (ValidSentencesInput())
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using desktop-clock-info`` () =
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) DesktopClock
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using console-waterworks-announcement`` () =
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) ConsoleWaterworks
Assert.NotNull result
[<Fact>]
let ``RequestTextFromFile does not return a null when using word-generator`` () =
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
Assert.NotNull result
[<Fact>]
let ``RequestTestFromFile does not generate a null when using test-post`` () =
let result = Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) TestPost
Assert.NotNull result
[<Fact>]
let ``RequestAllTemplateFiles does not generate a null`` () =
let result = Pancake.RequestAllTemplateFilesAsync ()
Assert.NotNull result
module ``Contents Tests`` =
[<Fact>]
let ``RequestRandomText returns a string which contains a full stop`` () =
let result =
Pancake.RequestRandomTextAsync ()
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestText returns a string which contains a full stop`` () =
let result =
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 result =
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 result =
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 result =
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 result =
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
|> Async.RunSynchronously
Assert.Contains(".", result)
[<Fact>]
let ``RequestRandomText returns a string which ends with a full stop`` () =
let result =
Pancake.RequestRandomTextAsync ()
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestText returns a string which ends with a full stop`` () =
let result =
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 result =
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 result =
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 result =
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 result =
Pancake.RequestTextFromFileAsync (ValidGibberishLevelInput()) (ValidSentencesInput()) WordGenerator
|> Async.RunSynchronously
Assert.EndsWith(".", result)
[<Fact>]
let ``RequestAllTemplateFiles does not return an empty list`` () =
let result =
Pancake.RequestAllTemplateFilesAsync ()
|> Async.RunSynchronously
Assert.NotEmpty result
module ``Exception Tests`` =
(*
let SentencesIsValid sentences =
let FilePathIsValid filePath
*)
[<Fact>]
let ``RequestText throws an ArgumentException when the gibberishLevel is invalid`` () =
let test () =
Pancake.RequestTextAsync (InvalidGibberishInput()) (ValidSentencesInput())
|> Async.RunSynchronously
lazy Assert.Throws<ArgumentException>(fun () -> test |> ignore)
[<Fact>]
let ``RequestText throws an ArgumentException when the sentences count is invalid`` () =
let test () =
Pancake.RequestTextAsync (ValidGibberishLevelInput()) (InvalidSentencesInput())
|> Async.RunSynchronously
lazy Assert.Throws<ArgumentException>(fun () -> test |> ignore)
[<Fact>]
let ``RequestTextFromFile throws an ArgumentException when the gibberishLevel is invalid`` () =
let test () =
Pancake.RequestTextFromFileAsync (InvalidGibberishInput()) (ValidSentencesInput()) (ValidFileInput())
|> Async.RunSynchronously
lazy Assert.Throws<ArgumentException>(fun () -> test |> ignore)