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
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)
|
|
|