bismarck.net/test/Bismarck.CodeGenerator.UnitTests/Indexers/EnumSchemaIndexerTest.fs

41 lines
1.3 KiB
Forth

namespace Bismarck.CodeGenerator.UnitTests.Indexers.EnumSchemaIndexerTest
open System.Collections.Generic
open Bismarck.CodeGenerator
open Bismarck.CodeGenerator.Indexers
open Bismarck.CodeGenerator.Models
open Microsoft.OpenApi.Any
open Microsoft.OpenApi.Models
open Xunit
type EnumSchemaIndexerTest() =
let indexer = EnumSchemaIndexer()
[<Fact>]
let ``Test empty enum`` () =
let enumValues: IList<IOpenApiAny> = [||]
let schema = OpenApiSchema(Enum = enumValues)
let es =
match indexer.Index(IndexRequest(schema, "status", "UnitTests", "MySvc")) with
| :? EnumSpec as e -> e
| _ -> failwith "unmatched type"
Assert.Equal(SchemaKind.Enum, es.Kind)
Assert.Equal("Object", es.TargetName)
Assert.Equal(0, es.Values |> Seq.length)
[<Fact>]
let ``Test single value enum`` () =
let enumValues: IList<IOpenApiAny> = [| OpenApiString("Value1") |]
let schema = OpenApiSchema(Enum = enumValues)
let es =
match indexer.Index(IndexRequest(schema, "status", "UnitTests", "MySvc")) with
| :? EnumSpec as e -> e
| _ -> failwith "unmatched type"
Assert.Equal(SchemaKind.Enum, es.Kind)
Assert.Equal("Object", es.TargetName)
Assert.Equal(1, es.Values |> Seq.length)