فهرست منبع

添加任务服务UT

LiHaoyu 5 سال پیش
والد
کامیت
01e9c46644
1فایلهای تغییر یافته به همراه126 افزوده شده و 0 حذف شده
  1. 126 0
      src/test/java/net/mooctest/www/android_auto_test/ServiceImpl/TraceServiceTest.java

+ 126 - 0
src/test/java/net/mooctest/www/android_auto_test/ServiceImpl/TraceServiceTest.java

@@ -0,0 +1,126 @@
+package net.mooctest.www.android_auto_test.ServiceImpl;
+
+import net.mooctest.www.android_auto_test.common.constant.enums.DeviceRunningStatus;
+import net.mooctest.www.android_auto_test.common.constant.enums.TraceStatus;
+import net.mooctest.www.android_auto_test.dao.RedisMappers.DeviceRunningStatusMap;
+import net.mooctest.www.android_auto_test.dao.RedisMappers.Trace2DeviceMap;
+import net.mooctest.www.android_auto_test.dao.RedisMappers.TraceStatusMap;
+import net.mooctest.www.android_auto_test.models.Device;
+import net.mooctest.www.android_auto_test.services.Impl.TraceServiceImpl;
+import net.mooctest.www.android_auto_test.vo.DeviceStatusResult;
+import org.junit.Assert;
+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.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.mockito.Mockito.*;
+
+
+@SpringBootTest
+@RunWith(PowerMockRunner.class)     // 这是必须的
+@PrepareForTest({File.class,
+        FileWriter.class,
+        BufferedWriter.class,
+        TraceServiceImpl.class})
+public class TraceServiceTest {
+
+    @Mock
+    TraceStatusMap traceStatusMap;
+
+    @Mock
+    Trace2DeviceMap trace2DeviceMap;
+
+    @Mock
+    DeviceRunningStatusMap deviceRunningStatusMap;
+
+    @InjectMocks
+    TraceServiceImpl traceService = new TraceServiceImpl();
+
+    List<Device> devices;
+
+    @Before
+    public void setUp(){
+        MockitoAnnotations.initMocks(this);
+        Device d1 = new Device();
+        d1.setUdid("d1");
+        Device d2 = new Device();
+        d2.setUdid("d2");
+        devices = Arrays.asList(d1, d2);
+    }
+
+    @Test
+    public void testUpdateTraceStatus(){
+        // arrange
+        doNothing().when(traceStatusMap).put("traceId", TraceStatus.FAILED);
+        // action
+        traceService.updateTraceStatue("traceId", TraceStatus.FAILED);
+        // assert
+        verify(traceStatusMap).put("traceId",TraceStatus.FAILED );
+    }
+
+    @Test
+    public void testGetTraceStatus(){
+        // arrange
+        when(traceStatusMap.get("traceId")).thenReturn(TraceStatus.FAILED);
+        // action
+        TraceStatus ts = traceService.getTraceStatue("traceId");
+        // assert
+        Assert.assertEquals(ts, TraceStatus.FAILED);
+    }
+
+    @Test
+    public void testSetDeviceList(){
+        // arrange
+        List<String> ds = devices.stream().map(Device::getUdid).collect(Collectors.toList());
+        doNothing().when(trace2DeviceMap).put("id", ds);
+        // action
+        traceService.setTraceDevices("id", devices);
+        // assert
+        verify(trace2DeviceMap).put("id", ds);
+    }
+
+    @Test
+    public void testGetDeviceList(){
+        // arrange
+        when(trace2DeviceMap.get("id")).thenReturn(devices.stream().map(Device::getUdid).collect(Collectors.toList()));
+        when(deviceRunningStatusMap.get("d1","id")).thenReturn(DeviceRunningStatus.FINISH);
+        when(deviceRunningStatusMap.get("d2","id")).thenReturn(DeviceRunningStatus.RUNNING);
+        // action
+        List<DeviceStatusResult> re = traceService.getTraceDeviceStatus("id");
+        // assert
+        Assert.assertEquals(2, re.size());
+        Assert.assertEquals(DeviceRunningStatus.FINISH.getCode(), re.get(0).getStatusCode());
+    }
+
+    @Test
+    public void testUpdateTraceStartTime() throws Exception {
+        // arrange
+        File f = PowerMockito.mock(File.class);
+        FileWriter fw = PowerMockito.mock(FileWriter.class);
+        BufferedWriter bw = PowerMockito.mock(BufferedWriter.class);
+
+        PowerMockito.whenNew(File.class).withAnyArguments().thenReturn(f);
+        PowerMockito.whenNew(FileWriter.class).withAnyArguments().thenReturn(fw);
+        PowerMockito.whenNew(BufferedWriter.class).withAnyArguments().thenReturn(bw);
+        doNothing().when(bw).write(anyString());
+        doNothing().when(bw).close();
+        // action
+        traceService.updateTraceStartTime("id");
+        // assert
+        verify(bw, times(1)).write(anyString());
+    }
+}