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

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A data.*CombinedSchemaGeneratorSuite.TestGenerateDataBySchema_NotACombiningSchema_Error 0 11 1
A data.*CombinedSchemaGeneratorSuite.SetupTest 0 7 1
A data.TestCombinedSchemaGeneratorSuite 0 2 1
A data.*CombinedSchemaGeneratorSuite.TestGenerateDataBySchema_CombiningSchema_DataGeneratedForMergedSchema 0 12 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 CombinedSchemaGeneratorSuite struct {
13
	suite.Suite
14
15
	merger          *mockSchemaMerger
16
	schemaGenerator *mockSchemaGenerator
17
18
	generator *combinedSchemaGenerator
19
}
20
21
func (suite *CombinedSchemaGeneratorSuite) SetupTest() {
22
	suite.merger = &mockSchemaMerger{}
23
	suite.schemaGenerator = &mockSchemaGenerator{}
24
25
	suite.generator = &combinedSchemaGenerator{
26
		merger:          suite.merger,
27
		schemaGenerator: suite.schemaGenerator,
28
	}
29
}
30
31
func TestCombinedSchemaGeneratorSuite(t *testing.T) {
32
	suite.Run(t, new(CombinedSchemaGeneratorSuite))
33
}
34
35
func (suite *CombinedSchemaGeneratorSuite) TestGenerateDataBySchema_CombiningSchema_DataGeneratedForMergedSchema() {
36
	schema := openapi3.NewSchema()
37
	mergedSchema := openapi3.NewSchema()
38
	suite.merger.On("MergeSchemas", schema).Return(mergedSchema).Once()
39
	suite.schemaGenerator.On("GenerateDataBySchema", mock.Anything, mergedSchema).Return("data", nil).Once()
40
41
	data, err := suite.generator.GenerateDataBySchema(context.Background(), schema)
42
43
	suite.merger.AssertExpectations(suite.T())
44
	suite.schemaGenerator.AssertExpectations(suite.T())
45
	suite.NoError(err)
46
	suite.Equal("data", data)
47
}
48
49
func (suite *CombinedSchemaGeneratorSuite) TestGenerateDataBySchema_NotACombiningSchema_Error() {
50
	schema := openapi3.NewSchema()
51
	schema.Title = "schema"
52
	suite.merger.On("MergeSchemas", schema).Return(nil).Once()
53
54
	data, err := suite.generator.GenerateDataBySchema(context.Background(), schema)
55
56
	suite.merger.AssertExpectations(suite.T())
57
	suite.schemaGenerator.AssertExpectations(suite.T())
58
	suite.EqualError(err, "[combinedSchemaGenerator] schema 'schema' is not a combining schema")
59
	suite.Nil(data)
60
}
61