1+ module FSharp.Data.Tests.HtmlTableCell
2+
3+ open NUnit.Framework
4+ open FsUnit
5+ open System
6+ open FSharp.Data
7+ open FSharp.Data .Runtime
8+
9+ [<Test>]
10+ let ``HtmlTableCell.Cell creates cell with header flag and data`` () =
11+ let cell = HtmlTableCell.Cell( true , " Header Text" )
12+ cell.IsHeader |> should equal true
13+ cell.Data |> should equal " Header Text"
14+
15+ [<Test>]
16+ let ``HtmlTableCell.Cell creates cell with non - header flag and data`` () =
17+ let cell = HtmlTableCell.Cell( false , " Cell Data" )
18+ cell.IsHeader |> should equal false
19+ cell.Data |> should equal " Cell Data"
20+
21+ [<Test>]
22+ let ``HtmlTableCell.Empty creates empty cell`` () =
23+ let cell = HtmlTableCell.Empty
24+ cell.IsHeader |> should equal true // Empty cells are considered headers
25+ cell.Data |> should equal " "
26+
27+ [<Test>]
28+ let ``HtmlTableCell IsHeader property works for various cell types`` () =
29+ let headerCell = HtmlTableCell.Cell( true , " Header" )
30+ let dataCell = HtmlTableCell.Cell( false , " Data" )
31+ let emptyCell = HtmlTableCell.Empty
32+
33+ headerCell.IsHeader |> should equal true
34+ dataCell.IsHeader |> should equal false
35+ emptyCell.IsHeader |> should equal true
36+
37+ [<Test>]
38+ let ``HtmlTableCell Data property returns correct content`` () =
39+ let headerCell = HtmlTableCell.Cell( true , " Column Title" )
40+ let dataCell = HtmlTableCell.Cell( false , " Row Value" )
41+ let emptyCell = HtmlTableCell.Empty
42+
43+ headerCell.Data |> should equal " Column Title"
44+ dataCell.Data |> should equal " Row Value"
45+ emptyCell.Data |> should equal " "
46+
47+ [<Test>]
48+ let ``HtmlTableCell handles empty string data`` () =
49+ let cell = HtmlTableCell.Cell( false , " " )
50+ cell.IsHeader |> should equal false
51+ cell.Data |> should equal " "
52+
53+ [<Test>]
54+ let ``HtmlTableCell handles whitespace data`` () =
55+ let cell = HtmlTableCell.Cell( true , " \t\n " )
56+ cell.IsHeader |> should equal true
57+ cell.Data |> should equal " \t\n "
58+
59+ [<Test>]
60+ let ``HtmlTableCell handles special characters in data`` () =
61+ let specialText = " Test with ñ, ü, and émojis 🎯"
62+ let cell = HtmlTableCell.Cell( false , specialText)
63+ cell.IsHeader |> should equal false
64+ cell.Data |> should equal specialText
65+
66+ [<Test>]
67+ let ``HtmlTableCell equality comparison works`` () =
68+ let cell1 = HtmlTableCell.Cell( true , " Test" )
69+ let cell2 = HtmlTableCell.Cell( true , " Test" )
70+ let cell3 = HtmlTableCell.Cell( false , " Test" )
71+ let empty1 = HtmlTableCell.Empty
72+ let empty2 = HtmlTableCell.Empty
73+
74+ ( cell1 = cell2) |> should equal true
75+ ( cell1 = cell3) |> should equal false
76+ ( empty1 = empty2) |> should equal true
77+
78+ [<Test>]
79+ let ``HtmlTableCell pattern matching works correctly`` () =
80+ let headerCell = HtmlTableCell.Cell( true , " Header" )
81+ let dataCell = HtmlTableCell.Cell( false , " Data" )
82+ let emptyCell = HtmlTableCell.Empty
83+
84+ match headerCell with
85+ | HtmlTableCell.Cell( isHeader, data) ->
86+ isHeader |> should equal true
87+ data |> should equal " Header"
88+ | HtmlTableCell.Empty -> failwith " Should not match Empty"
89+
90+ match dataCell with
91+ | HtmlTableCell.Cell( isHeader, data) ->
92+ isHeader |> should equal false
93+ data |> should equal " Data"
94+ | HtmlTableCell.Empty -> failwith " Should not match Empty"
95+
96+ match emptyCell with
97+ | HtmlTableCell.Empty -> () // Should match
98+ | HtmlTableCell.Cell(_, _) -> failwith " Should not match Cell"
0 commit comments