| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package export
- import (
- "encoding/json"
- "testing"
- "gitea.ligthert.net/golang/sudoku-funpark/controller"
- "gitea.ligthert.net/golang/sudoku-funpark/outputter"
- )
- // This function will test the renderJSON function.
- // Starts off by creating a new Export struct.
- // Creates a new Controller struct.
- // Adds a solution to the Controller struct.
- // Then it will execute the renderJSON function.
- // Check if the output is a JSON string.
- func TestRenderJSON(t *testing.T) {
- // Create a new Export struct.
- export := Export{}
- outp := outputter.Outputter{}
- outp.OutputType = "short"
- export.Controller = &controller.Controller{Outputter: &outp}
- // Create a new Controller struct.
- controller := controller.Controller{}
- controller.Solutions = append(controller.Solutions, []string{"123456789", "987654321", "123456789", "987654321", "123456789", "987654321", "123456789", "987654321", "123456789"})
- // Add a solution to the Controller struct.
- export.Controller = &controller
- // Execute the renderJSON function.
- render := export.renderJSON()
- // Check if the output is a JSON string and not empty.
- if render == "" {
- t.Error("Expected a non-empty JSON string, got", render)
- }
- // Check if the output is a JSON string.\
- if render != "[{\"order\":0,\"row1\":\"123456789\",\"row2\":\"987654321\",\"row3\":\"123456789\",\"row4\":\"987654321\",\"row5\":\"123456789\",\"row6\":\"987654321\",\"row7\":\"123456789\",\"row8\":\"987654321\",\"row9\":\"123456789\"}]" {
- t.Error("Expected a JSON string, got", render)
- }
- // Check if the outpt is a valid JSON string.
- // Check using the json.Unmarshal function.
- // If the output is not a valid JSON string, the Unmarshal function will throw an error.
- var result []map[string]interface{}
- err := json.Unmarshal([]byte(render), &result)
- if err != nil {
- t.Error("Expected a valid JSON string, got", render)
- }
- }
|