internal/openapi/generator/data/oneOfGenerator_test.go   A
last analyzed

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 38
dl 0
loc 59
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A data.TestOneOfGeneratorSuite 0 2 1
A data.*OneOfGeneratorSuite.TestGenerateDataBySchema_TwoSchemasAndRandomIndexIsFirst_DataGeneratedForFirstSchema 0 15 1
A data.*OneOfGeneratorSuite.TestGenerateDataBySchema_EmptySchemas_EmptyObject 0 8 1
A data.*OneOfGeneratorSuite.SetupTest 0 7 1
1
package data
2
3
import (
4
	"context"
5
	"testing"
6
7
	"github.com/getkin/kin-openapi/openapi3"
8
	"github.com/stretchr/testify/mock"
9
	"github.com/stretchr/testify/suite"
10
)
11
12
type OneOfGeneratorSuite struct {
13
	suite.Suite
14
15
	random          *mockRandomGenerator
16
	schemaGenerator *mockSchemaGenerator
17
18
	generator *oneOfGenerator
19
}
20
21
func (suite *OneOfGeneratorSuite) SetupTest() {
22
	suite.random = &mockRandomGenerator{}
23
	suite.schemaGenerator = &mockSchemaGenerator{}
24
25
	suite.generator = &oneOfGenerator{
26
		random:          suite.random,
27
		schemaGenerator: suite.schemaGenerator,
28
	}
29
}
30
31
func TestOneOfGeneratorSuite(t *testing.T) {
32
	suite.Run(t, new(OneOfGeneratorSuite))
33
}
34
35
func (suite *OneOfGeneratorSuite) TestGenerateDataBySchema_EmptySchemas_EmptyObject() {
36
	schema := openapi3.NewSchema()
37
	schema.OneOf = []*openapi3.SchemaRef{}
38
39
	data, err := suite.generator.GenerateDataBySchema(context.Background(), schema)
40
41
	suite.NoError(err)
42
	suite.Len(data, 0)
43
}
44
45
func (suite *OneOfGeneratorSuite) TestGenerateDataBySchema_TwoSchemasAndRandomIndexIsFirst_DataGeneratedForFirstSchema() {
46
	firstSchema := openapi3.NewSchema()
47
	secondSchema := openapi3.NewSchema()
48
	schema := openapi3.NewSchema()
49
	schema.OneOf = []*openapi3.SchemaRef{
50
		openapi3.NewSchemaRef("", firstSchema),
51
		openapi3.NewSchemaRef("", secondSchema),
52
	}
53
	suite.random.On("Intn", 2).Return(0).Once()
54
	suite.schemaGenerator.On("GenerateDataBySchema", mock.Anything, firstSchema).Return("data", nil).Once()
55
56
	data, err := suite.generator.GenerateDataBySchema(context.Background(), schema)
57
58
	suite.NoError(err)
59
	suite.Equal("data", data)
60
}
61