mockIto

package com.carbond.landmark.converter.gb2016;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.changan.carbond.landmark.converter.gb2016.VehicleLoginConverter;
import com.changan.carbond.landmark.dto.VehicleLoginDto;
import com.changan.carbond.landmark.handler.gb2016.VehicleLoginSerialNumHandler;
import com.changan.carbond.landmark.model.gb2016.GBBaseModel;
import com.changan.carbond.landmark.util.GBVehicleHelper;
import com.changan.carbond.landmark.util.ProtocolTool;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;


import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.when;

import java.util.Date;

/**
 * Created by Bonker on 2018/6/5.
 */

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class VehicleLoginConverterTest {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @InjectMocks
    private VehicleLoginConverter target = new VehicleLoginConverter();

    @Mock
    GBVehicleHelper gbVehicleHelper;

    @Mock
    VehicleLoginSerialNumHandler vehicleLoginSerialNumHandler;

    @Before
    public void steup() {
        MockitoAnnotations.initMocks(this);
        when(gbVehicleHelper.newSerialNum()).thenReturn(1);
        //无返回值
        Mockito.doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
                Object[] args = invocationOnMock.getArguments();
                return "called with arguments: " + args;
            }
        }).when(vehicleLoginSerialNumHandler).putLoginSerialNum("LFBJDBB43WJ000118", 1);
    }

    @Test
    public void convert() {
        VehicleLoginDto vehicleLoginDto = new VehicleLoginDto();
        vehicleLoginDto.setBatteriesCode(new String[]{"001", "002"});
        vehicleLoginDto.setIccid("1234567890123");
        vehicleLoginDto.setDate(new Date());
        vehicleLoginDto.setVin("LFBJDBB43WJ000118");

        //转换对象
        GBBaseModel gbBaseModel = target.convert(vehicleLoginDto);
        logger.info(JSON.toJSONString(gbBaseModel));
        try {
            byte[] data = gbBaseModel.encode();
            logger.info(ProtocolTool.getBytesAsHexStr(data));
            assertThat(data).isNotEmpty();
        }catch (Exception e){
            logger.info("error",e);
        }

    }

    @Test
    public void converter(){
        String jsonStr="{\"carId\":\"925184500671971328\",\"tuid\":\"50002001170911990000000007045755\",\"vin\":\"LS5A3AJCXJB008944\",\"iccid\":\"898602B32216C0476992\",\"date\":1528353792586,\"batteriesCode\":[],\"targetType\":\"VehicleLoginDto\"}";
        JSONObject jsonObj = JSON.parseObject(jsonStr);
         VehicleLoginDto vehicleLoginDto=jsonObj.toJavaObject(VehicleLoginDto.class);

        //转换对象
        GBBaseModel gbBaseModel = target.convert(vehicleLoginDto);
        logger.info(JSON.toJSONString(gbBaseModel));
        try {
            byte[] data = gbBaseModel.encode();
            logger.info(ProtocolTool.getBytesAsHexStr(data));
            assertThat(data).isNotEmpty();
        }catch (Exception e){
            logger.info("error",e);
        }

    }
}

package com.carbond.landmark.converter.gb2016;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.changan.carbond.landmark.converter.gb2016.VehicleLogoutConverter;
import com.changan.carbond.landmark.dto.VehicleLoginDto;
import com.changan.carbond.landmark.dto.VehicleLogoutDto;
import com.changan.carbond.landmark.handler.gb2016.VehicleLoginSerialNumHandler;
import com.changan.carbond.landmark.model.gb2016.GBBaseModel;
import com.changan.carbond.landmark.util.ProtocolTool;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;

import java.util.Date;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;

/**
 * Created by Bonker on 2018/6/5.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class VehicleLogoutConverterTest {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @InjectMocks
    private VehicleLogoutConverter target = new VehicleLogoutConverter();


    @Mock
    VehicleLoginSerialNumHandler vehicleLoginSerialNumHandler;

    @Before
    public void steup() {
        MockitoAnnotations.initMocks(this);
        when(vehicleLoginSerialNumHandler.getLoginSerialNum("LFBJDBB43WJ000118")).thenReturn(1);
    }

    @Test
    public void convert() {
        VehicleLogoutDto vehicleLogoutDto=new VehicleLogoutDto();
        vehicleLogoutDto.setLogoutDate(new Date());
        vehicleLogoutDto.setVin("LFBJDBB43WJ000118");

        //转换对象
        GBBaseModel gbBaseModel = target.convert(vehicleLogoutDto);
        logger.info(JSON.toJSONString(gbBaseModel));
        try {
            byte[] data = gbBaseModel.encode();
            logger.info(ProtocolTool.getBytesAsHexStr(data));
            assertThat(data).isNotEmpty();
        }catch (Exception e){
            logger.info("error",e);
        }

    }

    @Test
    public void converter(){
        String jsonStr=" {\"vin\":\"LS5A3CJC3JF810045\",\"logoutDate\":1528363761736,\"targetType\":\"VehicleLogoutDto\"}";
        JSONObject jsonObj = JSON.parseObject(jsonStr);
        VehicleLogoutDto vehicleLoginDto=jsonObj.toJavaObject(VehicleLogoutDto.class);

        //转换对象
        GBBaseModel gbBaseModel = target.convert(vehicleLoginDto);
        logger.info(JSON.toJSONString(gbBaseModel));
        try {
            byte[] data = gbBaseModel.encode();
            logger.info(ProtocolTool.getBytesAsHexStr(data));
            assertThat(data).isNotEmpty();
        }catch (Exception e){
            logger.info("error",e);
        }

    }

}

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-all</artifactId>
			<version>1.10.19</version>
			<scope>test</scope>
		</dependency>
<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>2.4.1</version>
			<scope>test</scope>
		</dependency>
<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.8.0</version>
		</dependency>

posted @ 2018-06-22 18:14  Bonker  阅读(425)  评论(0编辑  收藏  举报