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() [] let ``Test empty enum`` () = let enumValues: IList = [||] 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) [] let ``Test single value enum`` () = let enumValues: IList = [| 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)