...

Source file src/edge-infra.dev/pkg/edge/api/graph/resolver/compatibility_queries.resolvers_test.go

Documentation: edge-infra.dev/pkg/edge/api/graph/resolver

     1  package resolver
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/golang/mock/gomock"
     8  	"github.com/stretchr/testify/assert"
     9  
    10  	"edge-infra.dev/pkg/edge/api/graph/model"
    11  	"edge-infra.dev/pkg/edge/api/mocks"
    12  )
    13  
    14  func TestAddArtifactCompatibility(t *testing.T) {
    15  	mock := gomock.NewController(t)
    16  	compatibilityService := mocks.NewMockCompatibilityService(mock)
    17  
    18  	compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
    19  		Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
    20  
    21  	compatibilityService.EXPECT().AddArtifactCompatibility(context.Background(), gomock.Any()).
    22  		Return(true, nil).Times(1)
    23  
    24  	artInput := artifactCompatiblityInput()
    25  
    26  	response, err := compatibilityService.AddArtifactCompatibility(context.Background(), *artInput)
    27  	assert.NoError(t, err)
    28  	assert.NotNil(t, response)
    29  }
    30  
    31  func TestDeleteArtifactCompatibility(t *testing.T) {
    32  	mock := gomock.NewController(t)
    33  	compatibilityService := mocks.NewMockCompatibilityService(mock)
    34  
    35  	compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
    36  		Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
    37  
    38  	compatibilityService.EXPECT().DeleteArtifactCompatibility(context.Background(), gomock.Any()).
    39  		Return(true, nil).Times(1)
    40  
    41  	artInput := artifactCompatiblityInput()
    42  
    43  	response, err := compatibilityService.DeleteArtifactCompatibility(context.Background(), *artInput)
    44  	assert.NoError(t, err)
    45  	assert.NotNil(t, response)
    46  }
    47  
    48  func TestGetArtifactVersionCompatibility(t *testing.T) {
    49  	mock := gomock.NewController(t)
    50  	compatibilityService := mocks.NewMockCompatibilityService(mock)
    51  
    52  	compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
    53  		Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
    54  
    55  	compatibilityService.EXPECT().IsCompatible(context.Background(), gomock.Any(), gomock.Any()).
    56  		Return(true, nil).AnyTimes()
    57  
    58  	artInput := artifactCompatiblityInput()
    59  
    60  	response, err := compatibilityService.GetArtifactVersionCompatibility(context.Background(), model.ArtifactVersion{Name: artInput.Artifact.Name, Version: artInput.Artifact.Version}, nil)
    61  	assert.NoError(t, err)
    62  	assert.NotNil(t, response)
    63  }
    64  
    65  func TestCheckVersionSupport(t *testing.T) {
    66  	mock := gomock.NewController(t)
    67  	compatibilityService := mocks.NewMockCompatibilityService(mock)
    68  
    69  	compatibilityService.EXPECT().GetArtifactVersionCompatibility(context.Background(), gomock.Any(), nil).
    70  		Return(&model.ArtifactCompatibility{}, nil).AnyTimes()
    71  
    72  	compatibilityService.EXPECT().IsCompatible(context.Background(), gomock.Any(), gomock.Any()).
    73  		Return(true, nil).AnyTimes()
    74  
    75  	artInput := artifactCompatiblityInput()
    76  
    77  	response, err := compatibilityService.IsCompatible(context.Background(), model.ArtifactVersion{Name: artInput.Artifact.Name, Version: artInput.Artifact.Version}, model.ArtifactVersion{Name: artInput.CompatibleArtifacts[0].Name, Version: artInput.CompatibleArtifacts[0].Version})
    78  	assert.NoError(t, err)
    79  	assert.NotNil(t, response)
    80  }
    81  
    82  func artifactCompatiblityInput() *model.ArtifactCompatibilityPayload {
    83  	defaultBwc := 1
    84  	return &model.ArtifactCompatibilityPayload{
    85  		Artifact: &model.ArtifactInput{
    86  			Name:    "test-artifact",
    87  			Version: "1.10",
    88  		},
    89  		NthIndex: &defaultBwc,
    90  		CompatibleArtifacts: []*model.ArtifactInput{
    91  			{
    92  				Name:    "compatible-Artifact1",
    93  				Version: "1",
    94  			},
    95  			{
    96  				Name:    "compatible-Artifact1",
    97  				Version: "2",
    98  			},
    99  		},
   100  	}
   101  }
   102  

View as plain text