X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dmaap-mediator-producer%2Finternal%2Fconfig%2Fregistrator_test.go;h=353e9de8678b7bdb23cb81d65ec3491e39a456fa;hb=4cd9f067e6985a28c045dd672bd86581b8b5b1a9;hp=d3dd3a0cb6492b413345b117d46bb8815d49c185;hpb=cce95ff706e7b7d703b0bf1cfa6ce855cc2d9b68;p=nonrtric.git diff --git a/dmaap-mediator-producer/internal/config/registrator_test.go b/dmaap-mediator-producer/internal/config/registrator_test.go index d3dd3a0c..353e9de8 100644 --- a/dmaap-mediator-producer/internal/config/registrator_test.go +++ b/dmaap-mediator-producer/internal/config/registrator_test.go @@ -27,7 +27,7 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobtypes" + "oransc.org/nonrtric/dmaapmediatorproducer/internal/jobs" "oransc.org/nonrtric/dmaapmediatorproducer/internal/restclient" "oransc.org/nonrtric/dmaapmediatorproducer/mocks" ) @@ -43,11 +43,10 @@ func TestRegisterTypes(t *testing.T) { restclient.Client = &clientMock - type1 := jobtypes.Type{ - Name: "Type1", - Schema: `{"title": "Type 1"}`, + type1 := jobs.TypeData{ + TypeId: "Type1", } - types := []*jobtypes.Type{&type1} + types := []jobs.TypeData{type1} r := NewRegistratorImpl("http://localhost:9990") err := r.RegisterTypes(types) @@ -64,7 +63,44 @@ func TestRegisterTypes(t *testing.T) { assertions.Equal("/data-producer/v1/info-types/Type1", actualRequest.URL.Path) assertions.Equal("application/json; charset=utf-8", actualRequest.Header.Get("Content-Type")) body, _ := ioutil.ReadAll(actualRequest.Body) - expectedBody := []byte(`{"info_job_data_schema": {"title": "Type 1"}}`) + expectedBody := []byte(`{"info_job_data_schema": {"type": "object","properties": {},"additionalProperties": false}}`) + assertions.Equal(expectedBody, body) + clientMock.AssertNumberOfCalls(t, "Do", 1) +} + +func TestRegisterProducer(t *testing.T) { + assertions := require.New(t) + + clientMock := mocks.HTTPClient{} + + clientMock.On("Do", mock.Anything).Return(&http.Response{ + StatusCode: http.StatusCreated, + }, nil) + + restclient.Client = &clientMock + + producer := ProducerRegistrationInfo{ + InfoProducerSupervisionCallbackUrl: "supervisionCallbackUrl", + SupportedInfoTypes: []string{"type1"}, + InfoJobCallbackUrl: "jobCallbackUrl", + } + + r := NewRegistratorImpl("http://localhost:9990") + err := r.RegisterProducer("Producer1", &producer) + + assertions.Nil(err) + var actualRequest *http.Request + clientMock.AssertCalled(t, "Do", mock.MatchedBy(func(req *http.Request) bool { + actualRequest = req + return true + })) + assertions.Equal(http.MethodPut, actualRequest.Method) + assertions.Equal("http", actualRequest.URL.Scheme) + assertions.Equal("localhost:9990", actualRequest.URL.Host) + assertions.Equal("/data-producer/v1/info-producers/Producer1", actualRequest.URL.Path) + assertions.Equal("application/json; charset=utf-8", actualRequest.Header.Get("Content-Type")) + body, _ := ioutil.ReadAll(actualRequest.Body) + expectedBody := []byte(`{"info_producer_supervision_callback_url":"supervisionCallbackUrl","supported_info_types":["type1"],"info_job_callback_url":"jobCallbackUrl"}`) assertions.Equal(expectedBody, body) clientMock.AssertNumberOfCalls(t, "Do", 1) }