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