org.venice.piazza.serviceregistry.controller.messaging.handlers.RegistryServiceHandlerTest.java Source code

Java tutorial

Introduction

Here is the source code for org.venice.piazza.serviceregistry.controller.messaging.handlers.RegistryServiceHandlerTest.java

Source

/**
 * Copyright 2016, RadiantBlue Technologies, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 **/
package org.venice.piazza.serviceregistry.controller.messaging.handlers;

import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.powermock.api.mockito.PowerMockito.mock;
import static org.powermock.api.mockito.PowerMockito.when;
import static org.powermock.api.mockito.PowerMockito.whenNew;

import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.client.RestTemplate;
import org.venice.piazza.servicecontroller.data.mongodb.accessors.MongoAccessor;
import org.venice.piazza.servicecontroller.elasticsearch.accessors.ElasticSearchAccessor;
import org.venice.piazza.servicecontroller.messaging.handlers.RegisterServiceHandler;
import org.venice.piazza.servicecontroller.util.CoreServiceProperties;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import model.data.DataType;
import model.data.type.URLParameterDataType;
import model.job.metadata.ResourceMetadata;
import model.response.ServiceResponse;

import model.service.metadata.Service;
import util.PiazzaLogger;
import util.UUIDFactory;

@RunWith(PowerMockRunner.class)
public class RegistryServiceHandlerTest {

    @Mock
    private RegisterServiceHandler rsHandler;

    RestTemplate template = null;
    Service service = null;
    ResourceMetadata rm = null;
    UUIDFactory uuidFactory = null;

    @Before
    public void setup() {
        uuidFactory = mock(UUIDFactory.class);
        when(uuidFactory.getUUID()).thenReturn("NoDoz");
        template = mock(RestTemplate.class);
        try {
            whenNew(RestTemplate.class).withNoArguments().thenReturn(template);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        rm = new ResourceMetadata();
        rm.name = "toUpper Params";
        rm.description = "Service to convert string to uppercase";
        service = new Service();
        service.setMethod("POST");
        service.setResourceMetadata(rm);
        service.setServiceId("8");
        DataType dataType1 = new URLParameterDataType();

        //DEBUGGING
        ObjectMapper mapper = new ObjectMapper();
        try {
            String jsonReq = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(service);
            System.out.println(jsonReq);
        } catch (JsonProcessingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    @PrepareForTest({ RegisterServiceHandler.class })
    @Test
    @Ignore
    public void testHandleWithData() {
        ElasticSearchAccessor mockElasticAccessor = mock(ElasticSearchAccessor.class);
        when(mockElasticAccessor.save(service)).thenReturn(new ServiceResponse());
        MongoAccessor mockMongo = mock(MongoAccessor.class);
        when(mockMongo.save(service)).thenReturn("8");
        CoreServiceProperties props = mock(CoreServiceProperties.class);
        //when(props.getUuidservicehost().thenReturn("Nothing");
        PiazzaLogger logger = mock(PiazzaLogger.class);
        String retVal = rsHandler.handle(service);
        assertTrue(retVal.contains("NoDoz"));
        assertTrue(service.getServiceId().contains("NoDoz"));

    }

    @PrepareForTest({ RegisterServiceHandler.class })
    @Test
    public void testHandleWithoutData() {
        ElasticSearchAccessor mockElasticAccessor = mock(ElasticSearchAccessor.class);
        when(mockElasticAccessor.save(service)).thenReturn(new ServiceResponse());
        MongoAccessor mockMongo = mock(MongoAccessor.class);
        when(mockMongo.save(service)).thenReturn("8");
        CoreServiceProperties props = mock(CoreServiceProperties.class);
        PiazzaLogger logger = mock(PiazzaLogger.class);
        Service nullService = null;
        String retVal = rsHandler.handle(nullService);
        assertNull(retVal);
    }

}