41 lines
1.3 KiB
Forth
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)
|