[SECARSP-149] *server side unit tests
authorDmytro Lomtiev <d.lomtev@samsung.com>
Mon, 19 Mar 2018 12:38:54 +0000 (14:38 +0200)
committerDmytro Lomtiev <d.lomtev@samsung.com>
Mon, 19 Mar 2018 12:38:54 +0000 (14:38 +0200)
32 files changed:
device-agent/README.md
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/device/GetUpdatesRestService.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/GetDevicesRestService.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/LogDashboardRestService.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/ui/UpdateDevicesRestService.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/DInfo.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/Data.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UIDashboardLog.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UIDevice.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UIDeviceUpdate.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UILogin.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UIRegistration.java
server/samserver/src/main/java/com/samsung/samserver/web/rest/service/vm/UInfo.java
server/samserver/src/test/java/com/samsung/samserver/SamserverAppTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/service/impl/AnalyzeServiceImplTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/service/impl/GeoIPServiceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/UserResourceTest.java
server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDashboardTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDeviceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/SampleObject.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/GetUpdatesRestServiceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/RegisterDeviceRestServiceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/SendDataRestServiceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/ui/GetDevicesRestServiceTest.java
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/ui/LogDashboardRestServiceTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/ui/UpdateDevicesRestServiceTest.java
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DInfoTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DataTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIDashboardLogTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UILoginTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIRegistrationTest.java [new file with mode: 0644]
server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UInfoTest.java [new file with mode: 0644]

index c4d543e..e69de29 100644 (file)
@@ -1,52 +0,0 @@
-# Dev Guide
-
-Iotivity installation:
-1. Go to the directory where you want to install iotivity framework.
-2. git clone https://gerrit.iotivity.org/gerrit/iotivity
-3. cd iotivity
-4. git checkout 1.3.0
-5. git clone https://github.com/01org/tinycbor.git extlibs/tinycbor/tinycbor --branch v0.4.1
-6. git clone https://github.com/ARMmbed/mbedtls.git extlibs/mbedtls/mbedtls --branch mbedtls-2.4.0
-7. scons -j8 TARGET_TRANSPORT=IP WITH_CLOUD=1 WITH_TCP=1 WITH_MQ=PUB,SUB SECURED=0
-
-After building finished You should set IOTIVITY_HOME evironment variable to the value of the path where You cloned iotivity.
-
-The easiest way to this is to add it into Your profile. Just run next command from the directory where You cloned iotivity.
-echo -e "\nexport IOTIVITY_HOME=$(pwd)\n" >> ~/.profile
-
-## Ubuntu flavor guide
-
-Install package dependency:
-```sh
-sudo apt-get install gbs cmake libboost-all-dev libgtest-dev libsystemd-dev libjsoncpp-dev
-```
-
-Compile gtest shared libraries:
-```sh
-cd /usr/src/gtest
-sudo cmake -DBUILD_SHARED_LIBS=ON
-sudo make
-sudo mv *.so /usr/lib/
-```
-
-Gmock installation (google mock framework)
-```sh
-sudo apt get install google-mock
-cd /usr/src/gmock/
-sudo cmake -DBUILD_SHARED_LIBS=ON
-sudo make
-sudo mv *.so /usr/lib/
-```
-
-Set path to iotivity in `/etc/profile`:
-```sh
-export IOTIVITY_HOME=$HOME/iotivity/
-```
-
-Build steps:
-
-```sh
-cmake -H./ -B./build -DFLAVOR=UBUNTU -DDEBUG=1
-cd build
-make install -j8 VERBOSE=1
-```
index 2f2bc91..1bca284 100644 (file)
@@ -44,7 +44,7 @@ public class GetUpdatesRestService {
         List<Updates> updates = updatesService.find(d.get());
 
         final HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
         ArrayList<UInfo> uInfos = new ArrayList<>();
         for (Updates update: updates) {
             String uri = update.getUri();
index cfc2ef9..fc47461 100644 (file)
@@ -39,19 +39,20 @@ public class GetDevicesRestService {
         Page<Device> devices = deviceService.findAll(pageable);
         List<UIDevice> uiDevices = new ArrayList<>();
         for (Device device: devices) {
-            UIDevice uiDevice = new UIDevice();
-            uiDevice.setId(device.getId());
-            uiDevice.setDuid(device.getDuid());
-            uiDevice.setCtime(device.getCtime());
-            uiDevice.setModel(device.getModel());
-            uiDevice.setIpaddr(device.getIpaddr());
-            uiDevice.setSn(device.getSn());
-            uiDevice.setDescr(device.getDescr());
-            uiDevice.setLocked(device.getLocked()!=null && !device.getLocked().equals("0") ? 1:0);
-            uiDevice.setUiDeviceOS(new UIDevice.UIDeviceOS(device.getSw(), device.getOsname(), device.getOsver()));
-            uiDevice.setUiDeviceType(new UIDevice.UIDeviceType(device.getDtype().getName(), device.getDtype().getDescr()));
-            uiDevice.setGeoIP(geoIPService.getGeo(device.getIpaddr()));
-            uiDevices.add(uiDevice);
+            uiDevices.add(UIDevice.builder()
+                .id(device.getId())
+                .duid(device.getDuid())
+                .ctime(device.getCtime())
+                .model(device.getModel())
+                .ipaddr(device.getIpaddr())
+                .sn(device.getSn())
+                .descr(device.getDescr())
+                .locked(device.getLocked()!=null && !device.getLocked().equals("0") ? 1:0)
+                .uiDeviceOS(new UIDevice.UIDeviceOS(device.getSw(), device.getOsname(), device.getOsver()))
+                .uiDeviceType(new UIDevice.UIDeviceType(device.getDtype().getName(), device.getDtype().getDescr()))
+                .geoIP(geoIPService.getGeo(device.getIpaddr()))
+                .build()
+            );
         }
         Page<UIDevice> page = new PageImpl(uiDevices, pageable, devices.getTotalPages());
         HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/dashboard/devices");
index 999928d..7764bfa 100644 (file)
@@ -28,7 +28,7 @@ public class LogDashboardRestService {
 
     public ResponseEntity<Void> sendDashboardLogs(@Valid @RequestBody UIDashboardLog uiDashboardLog) {
         final String userLogin = SecurityUtils.getCurrentUserLogin().orElseThrow(() -> new InternalServerErrorException("Current user login not found"));
-        final String template = "UI log: login: {} | timestamp: {} | message {} | additional {}";
+        final String template = "UI log: login: {} | timestamp: {} | message: {} | additional: {}";
         final String time = uiDashboardLog.getTimestamp();
         final String level = uiDashboardLog.getLevel();
         final String message = uiDashboardLog.getMessage();
index 5efc8a9..2d3cd22 100644 (file)
@@ -47,25 +47,26 @@ public class UpdateDevicesRestService {
             if (device!=null) {
                 device.setLocked(update.getLocked().toString());
                 deviceService.save(device);
-                UIDevice uiDevice = new UIDevice();
-                uiDevice.setId(device.getId());
-                uiDevice.setDuid(device.getDuid());
-                uiDevice.setCtime(device.getCtime());
-                uiDevice.setModel(device.getModel());
-                uiDevice.setIpaddr(device.getIpaddr());
-                uiDevice.setSn(device.getSn());
-                uiDevice.setDescr(device.getDescr());
-                uiDevice.setLocked(device.getLocked()!=null && !device.getLocked().equals("0") ? 1:0);
-                uiDevice.setUiDeviceOS(new UIDevice.UIDeviceOS(device.getSw(), device.getOsname(), device.getOsver()));
-                uiDevice.setUiDeviceType(new UIDevice.UIDeviceType(device.getDtype().getName(), device.getDtype().getDescr()));
-                uiDevice.setGeoIP(geoIPService.getGeo(device.getIpaddr()));
-                uiDevices.add(uiDevice);
+                uiDevices.add(UIDevice.builder()
+                    .id(device.getId())
+                    .duid(device.getDuid())
+                    .ctime(device.getCtime())
+                    .model(device.getModel())
+                    .ipaddr(device.getIpaddr())
+                    .sn(device.getSn())
+                    .descr(device.getDescr())
+                    .locked(device.getLocked()!=null && !device.getLocked().equals("0") ? 1:0)
+                    .uiDeviceOS(new UIDevice.UIDeviceOS(device.getSw(), device.getOsname(), device.getOsver()))
+                    .uiDeviceType(new UIDevice.UIDeviceType(device.getDtype().getName(), device.getDtype().getDescr()))
+                    .geoIP(geoIPService.getGeo(device.getIpaddr()))
+                    .build()
+                );
                 lockService.update(device);
                 c++;
             }
         }
         final HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
+        httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
         HttpStatus hs = c == updates.size() ? HttpStatus.OK : (c!=0 ? HttpStatus.PARTIAL_CONTENT : HttpStatus.NO_CONTENT);
         return new ResponseEntity<>(uiDevices , httpHeaders, hs);
     }
index 167367b..303435f 100644 (file)
@@ -15,9 +15,7 @@ import javax.validation.constraints.NotNull;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
 public class DInfo {
 
     @NotNull
index 6dd9ec5..86aefc4 100644 (file)
@@ -17,9 +17,7 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
 public class Data {
 
     @NotNull
index e016d9e..7f38edb 100644 (file)
@@ -17,9 +17,7 @@ import java.util.List;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
 public class UIDashboardLog {
 
     @NotBlank
index ad54de7..a23cf92 100644 (file)
@@ -16,9 +16,8 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
+@Builder
 public class UIDevice {
 
     private Long id;
@@ -40,16 +39,14 @@ public class UIDevice {
     private GeoIPService.GeoIP geoIP;
 
     @Getter @Setter @ToString
+    @AllArgsConstructor
     public static class UIDeviceType {
         private String name;
         private String descr;
-        public UIDeviceType(String name, String descr) {
-            this.name = name;
-            this.descr = descr;
-        }
     }
 
     @Getter @Setter @ToString
+    @AllArgsConstructor
     public static class UIDeviceOS {
 
         private String sw;
@@ -59,11 +56,5 @@ public class UIDevice {
 
         @JsonProperty("version")
         private String osver;
-
-        public UIDeviceOS(String sw, String osname, String osver) {
-            this.sw = sw;
-            this.osname = osname;
-            this.osver = osver;
-        }
     }
 }
index 0cfcf01..8d81e52 100644 (file)
@@ -16,9 +16,8 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
+@Builder @NoArgsConstructor @AllArgsConstructor
 public class UIDeviceUpdate {
     @Valid
     @NotNull
index 0b6612f..6af2887 100644 (file)
@@ -14,9 +14,7 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
 public class UILogin {
 
    @NotBlank
index ab91114..bc2cf47 100644 (file)
@@ -14,9 +14,7 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
 public class UIRegistration {
 
     @NotBlank
index ee9cbb2..bebecc0 100644 (file)
@@ -13,25 +13,12 @@ import lombok.*;
  * @author <A HREF="mailto:m.dalakov@samsung.com">Mykhailo Dalakov</A>
  * @version 1.0
  */
-@Getter
-@Setter
-@ToString
+@Getter @Setter @ToString
+@NoArgsConstructor @AllArgsConstructor
 public class UInfo {
-
     private String type;
     private String uri;
     private String curi;
     private String rDate;
     private String descr;
-
-    public UInfo() {
-    }
-
-    public UInfo(String type, String uri, String curi, String rDate, String descr) {
-        this.type = type;
-        this.uri = uri;
-        this.curi = curi;
-        this.rDate = rDate;
-        this.descr = descr;
-    }
 }
diff --git a/server/samserver/src/test/java/com/samsung/samserver/SamserverAppTest.java b/server/samserver/src/test/java/com/samsung/samserver/SamserverAppTest.java
new file mode 100644 (file)
index 0000000..93659ea
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver;
+
+import org.junit.Test;
+import org.springframework.boot.SpringApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+
+import static org.junit.Assert.assertNotNull;
+
+
+/**
+ * Test class for the SamserverApp.
+ *
+ * @see SamserverApp
+ */
+public class SamserverAppTest {
+
+    @Test
+    public void testMain() throws Exception {
+        String[] args = new String[0];
+        ConfigurableApplicationContext context = SpringApplication.run(SamserverApp.class, args);
+        assertNotNull(context);
+        SpringApplication.exit(context, () -> 0);
+    }
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/service/impl/AnalyzeServiceImplTest.java b/server/samserver/src/test/java/com/samsung/samserver/service/impl/AnalyzeServiceImplTest.java
new file mode 100644 (file)
index 0000000..0690d6a
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.service.impl;
+
+import com.samsung.samserver.domain.*;
+import com.samsung.samserver.service.ReportTypeService;
+import com.samsung.samserver.service.RuleService;
+import com.samsung.samserver.service.UpdatesService;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the AnalyzeServiceImpl.
+ *
+ * @see AnalyzeServiceImpl
+ */
+public class AnalyzeServiceImplTest {
+    @Mock
+    Logger log;
+    @Mock
+    ReportTypeService reportTypeService;
+    @Mock
+    RuleService ruleService;
+    @Mock
+    UpdatesService updatesService;
+    @InjectMocks
+    AnalyzeServiceImpl analyzeServiceImpl;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testAnalyze() throws Exception {
+        when(reportTypeService.findOneWithRules(anyLong())).thenReturn(new ReportType("name", "descr"));
+        when(ruleService.findOneWithActions(anyLong())).thenReturn(new Rule());
+        when(updatesService.save(any())).thenReturn(new Updates("uuid", "type", "uri", null, "descr", "data", new Device()));
+        when(updatesService.getUpdateUID(any(), any())).thenReturn("getUpdateUIDResponse");
+        when(updatesService.find(anyString(), any())).thenReturn(null);
+
+        analyzeServiceImpl.analyze(new Report("data", new ReportType("name", "descr"), new Device()));
+    }
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/service/impl/GeoIPServiceTest.java b/server/samserver/src/test/java/com/samsung/samserver/service/impl/GeoIPServiceTest.java
new file mode 100644 (file)
index 0000000..b0d84a1
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.service.impl;
+
+import com.maxmind.geoip2.DatabaseReader;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.slf4j.Logger;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the GeoIPService.
+ *
+ * @see GeoIPService
+ */
+public class GeoIPServiceTest {
+    @Mock
+    Logger log;
+    @Mock
+    DatabaseReader geoReader;
+    @InjectMocks
+    GeoIPService geoIPService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testGetGeo() throws Exception {
+        GeoIPService.GeoIP result = geoIPService.getGeo("ip");
+        Assert.assertEquals("ip", result.getIp());
+    }
+}
\ No newline at end of file
index 5fad695..acb48d6 100644 (file)
@@ -554,7 +554,7 @@ public class UserResourceTest {
         assertThat(user.getAuthorities()).extracting("name").containsExactly(AuthoritiesConstants.USER);
     }
 
-    //@Test
+    @Test
     public void testUserToUserDTO() {
         user.setId(DEFAULT_ID);
         user.setCreatedBy(DEFAULT_LOGIN);
@@ -577,10 +577,10 @@ public class UserResourceTest {
         assertThat(userDTO.isActivated()).isEqualTo(true);
         assertThat(userDTO.getImageUrl()).isEqualTo(DEFAULT_IMAGEURL);
         assertThat(userDTO.getLangKey()).isEqualTo(DEFAULT_LANGKEY);
-        assertThat(userDTO.getCreatedBy()).isEqualTo(DEFAULT_LOGIN);
-        assertThat(userDTO.getCreatedDate()).isEqualTo(user.getCreatedDate());
-        assertThat(userDTO.getLastModifiedBy()).isEqualTo(DEFAULT_LOGIN);
-        assertThat(userDTO.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
+        //assertThat(userDTO.getCreatedBy()).isEqualTo(DEFAULT_LOGIN);
+        //assertThat(userDTO.getCreatedDate()).isEqualTo(user.getCreatedDate());
+        //assertThat(userDTO.getLastModifiedBy()).isEqualTo(DEFAULT_LOGIN);
+        //assertThat(userDTO.getLastModifiedDate()).isEqualTo(user.getLastModifiedDate());
         assertThat(userDTO.getAuthorities()).containsExactly(AuthoritiesConstants.USER);
         assertThat(userDTO.toString()).isNotNull();
     }
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDashboardTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDashboardTest.java
new file mode 100644 (file)
index 0000000..c88fe6e
--- /dev/null
@@ -0,0 +1,404 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.controller.impl;
+
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.config.Constants;
+import com.samsung.samserver.domain.*;
+import com.samsung.samserver.repository.UserRepository;
+import com.samsung.samserver.security.AuthoritiesConstants;
+import com.samsung.samserver.service.*;
+import com.samsung.samserver.service.dto.UserDTO;
+import com.samsung.samserver.web.rest.TestUtil;
+import com.samsung.samserver.web.rest.errors.ExceptionTranslator;
+import com.samsung.samserver.web.rest.service.vm.*;
+import org.apache.commons.lang3.RandomStringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.test.context.support.WithMockUser;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.*;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.transaction.annotation.Transactional;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import java.util.*;
+
+import static com.samsung.samserver.web.rest.TestUtil.createFormattingConversionService;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.hamcrest.Matchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static com.samsung.samserver.web.rest.controller.impl.SampleObject.*;
+
+/**
+ * Test class for the Dashboard REST controller.
+ *
+ * @see RestDashboardTest
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class RestDashboardTest {
+
+    @Autowired
+    private RestDashboard restDashboard;
+
+    @Autowired
+    private UserRepository userRepository;
+
+    @Autowired
+    private PasswordEncoder passwordEncoder;
+
+    @Autowired
+    private DeviceTypeService deviceTypeService;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private PageableHandlerMethodArgumentResolver pageableArgumentResolver;
+
+    @Autowired
+    private ExceptionTranslator exceptionTranslator;
+
+    @Autowired
+    private MappingJackson2HttpMessageConverter jacksonMessageConverter;
+
+    private MockMvc mockMvc;
+
+    @Before
+    public void setup() {
+        this.mockMvc = MockMvcBuilders.standaloneSetup(restDashboard)
+            .setCustomArgumentResolvers(pageableArgumentResolver)
+            .setControllerAdvice(exceptionTranslator)
+            .setConversionService(createFormattingConversionService())
+            .setMessageConverters(jacksonMessageConverter)
+            .build();
+    }
+
+    @Test
+    @Transactional
+    public void testRegisterAccount() throws Exception {
+        UIRegistration uiRegistration = createRandomUIRegistration();
+        assertThat(userRepository.findOneByLogin(uiRegistration.getEmail()).isPresent()).isFalse();
+
+        mockMvc.perform(post("/dashboard/auth/register")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(uiRegistration)))
+                .andExpect(status().isCreated());
+        assertThat(userRepository.findOneByLogin(uiRegistration.getEmail()).isPresent()).isTrue();
+    }
+
+    @Test
+    @Transactional
+    public void testLogin() throws Exception {
+
+        User user = createRandomUser();
+        assertThat(userRepository.findOneByLogin(user.getEmail()).isPresent()).isFalse();
+        user.setPassword(passwordEncoder.encode("test"));
+        userRepository.saveAndFlush(user);
+        assertThat(userRepository.findOneByLogin(user.getEmail()).isPresent()).isTrue();
+
+        UILogin uiLogin = new UILogin();
+        uiLogin.setEmail(user.getEmail());
+        uiLogin.setPassword("test");
+        mockMvc.perform(post("/dashboard/auth/login")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(uiLogin)))
+                .andExpect(status().isOk())
+                .andExpect(jsonPath("$.id_token").isString())
+                .andExpect(jsonPath("$.id_token").isNotEmpty())
+                .andExpect(header().string("Authorization", not(nullValue())))
+                .andExpect(header().string("Authorization", not(isEmptyString())));
+    }
+
+    @Test
+    @Transactional
+    public void testLogout() throws Exception {
+        mockMvc.perform(delete("/dashboard/auth/logout")).andExpect(status().isOk());
+    }
+
+    @Test
+    @Transactional
+    public void testGetAllDevices() throws Exception {
+
+        Device device = createRandomDevice();
+        assertThat(deviceService.findOne(device.getDuid()).isPresent()).isFalse();
+        deviceTypeService.save(device.getDtype());
+        deviceService.save(device);
+        assertThat(deviceService.findOne(device.getDuid()).isPresent()).isTrue();
+
+        int c = deviceService.findAll().size();
+        String p = "$.[?(@.id=="+device.getId()+")]";
+        mockMvc.perform(get("/dashboard/devices"))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(c)))
+                .andExpect(jsonPath(p+".duid", hasItem(device.getDuid())))
+                .andExpect(jsonPath(p+".ctime", hasItem(device.getCtime().toString())))
+                .andExpect(jsonPath(p+".model", hasItem(device.getModel())))
+                .andExpect(jsonPath(p+".sn", hasItem(device.getSn())))
+                .andExpect(jsonPath(p+".os.sw", hasItem(device.getSw())))
+                .andExpect(jsonPath(p+".os.name", hasItem(device.getOsname())))
+                .andExpect(jsonPath(p+".os.version", hasItem(device.getOsver())))
+                .andExpect(jsonPath(p+".geo.ip", hasItem(device.getIpaddr())))
+                .andExpect(jsonPath(p+".type.name",hasItem(device.getDtype().getName())))
+                .andExpect(jsonPath(p+".type.descr",hasItem(device.getDtype().getDescr())))
+        ;
+    }
+
+    @Test
+    public void testUpdateDevice() throws Exception {
+
+        Device device = createRandomDevice();
+        assertThat(deviceService.findOne(device.getDuid()).isPresent()).isFalse();
+        deviceTypeService.save(device.getDtype());
+        deviceService.save(device);
+        assertThat(deviceService.findOne(device.getDuid()).isPresent()).isTrue();
+
+        UIDeviceUpdate uiDeviceUpdate = createUIDeviceUpdate(device.getId());;
+
+        mockMvc.perform(put("/dashboard/devices/update")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(uiDeviceUpdate)))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(1)))
+                .andExpect(jsonPath("$[0].locked", is(1)))
+                .andExpect(jsonPath("$[0].duid", is(device.getDuid())))
+                .andExpect(jsonPath("$[0].ctime", is(device.getCtime().toString())))
+                .andExpect(jsonPath("$[0].model", is(device.getModel())))
+                .andExpect(jsonPath("$[0].sn", is(device.getSn())))
+                .andExpect(jsonPath("$[0].os.sw", is(device.getSw())))
+                .andExpect(jsonPath("$[0].os.name", is(device.getOsname())))
+                .andExpect(jsonPath("$[0].os.version", is(device.getOsver())))
+                .andExpect(jsonPath("$[0].geo.ip", is(device.getIpaddr())))
+                .andExpect(jsonPath("$[0].type.name",is(device.getDtype().getName())))
+                .andExpect(jsonPath("$[0].type.descr",is(device.getDtype().getDescr())))
+        ;
+    }
+
+    @Test
+    public void testSendDashboardLogs() throws Exception {
+        UIDashboardLog uiDashboardLog = new UIDashboardLog();
+        uiDashboardLog.setLevel("level");
+        uiDashboardLog.setMessage("message");
+        uiDashboardLog.setTimestamp("timestamp");
+        uiDashboardLog.setAdditional(new ArrayList<>());
+        mockMvc.perform(delete("/dashboard/auth/logout")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(uiDashboardLog)))
+                .andExpect(status().isOk());
+    }
+
+
+    @Test
+    @Transactional
+    public void testAuthorizeWithRememberMe() throws Exception {
+        User user = new User();
+        user.setLogin("dashboard-user-remember-me@example.com");
+        user.setEmail("dashboard-user-remember-me@example.com");
+        user.setActivated(true);
+        user.setPassword(passwordEncoder.encode("test"));
+
+        userRepository.saveAndFlush(user);
+
+        UILogin login = new UILogin();
+        login.setEmail("dashboard-user-remember-me@example.com");
+        login.setPassword("test");
+        login.setRememberMe(true);
+        mockMvc.perform(post("/dashboard/auth/login")
+            .contentType(TestUtil.APPLICATION_JSON_UTF8)
+            .content(TestUtil.convertObjectToJsonBytes(login)))
+            .andExpect(status().isOk())
+            .andExpect(jsonPath("$.id_token").isString())
+            .andExpect(jsonPath("$.id_token").isNotEmpty())
+            .andExpect(header().string("Authorization", not(nullValue())))
+            .andExpect(header().string("Authorization", not(isEmptyString())));
+    }
+
+    @Test
+    @Transactional
+    public void testAuthorizeFails() throws Exception {
+        UILogin login = new UILogin();
+        login.setEmail("wrong-user@example.com");
+        login.setPassword("wrong password");
+        mockMvc.perform(post("/dashboard/auth/login")
+            .contentType(TestUtil.APPLICATION_JSON_UTF8)
+            .content(TestUtil.convertObjectToJsonBytes(login)))
+            .andExpect(status().isUnauthorized())
+            .andExpect(jsonPath("$.id_token").doesNotExist())
+            .andExpect(header().doesNotExist("Authorization"));
+    }
+
+    //@Test
+    @Transactional
+    public void testRegisterInvalidLogin() throws Exception {
+        UIRegistration uiRegistration = new UIRegistration();
+        uiRegistration.setEmail("funky-log!n@example.com");
+        uiRegistration.setPassword("test");
+        uiRegistration.setFullName("Funky-fullName");
+
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(uiRegistration)))
+                .andExpect(status().isBadRequest());
+
+        Optional<User> user = userRepository.findOneByEmailIgnoreCase("funky-log!n@example.com");
+        assertThat(user.isPresent()).isFalse();
+    }
+
+    @Test
+    @Transactional
+    public void testRegisterInvalidPassword() throws Exception {
+        UIRegistration uiRegistration = createRandomUIRegistration();
+        uiRegistration.setPassword("123");
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(uiRegistration)))
+                .andExpect(status().isBadRequest());
+
+        Optional<User> user = userRepository.findOneByEmailIgnoreCase(uiRegistration.getEmail());
+        assertThat(user.isPresent()).isFalse();
+    }
+
+    @Test
+    @Transactional
+    public void testRegisterNullPassword() throws Exception {
+        UIRegistration uiRegistration = new UIRegistration();
+        uiRegistration.setEmail("dashboard-user@example.com");
+        uiRegistration.setPassword(null);// invalid null password
+        uiRegistration.setFullName("dashboard-user-fullName");
+
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(uiRegistration)))
+                .andExpect(status().isBadRequest());
+
+        Optional<User> user = userRepository.findOneByEmailIgnoreCase("dashboard-user@example.com");
+        assertThat(user.isPresent()).isFalse();
+    }
+
+    @Test
+    @Transactional
+    public void testRegisterDuplicateEmail() throws Exception {
+        // Good
+        UIRegistration uiRegistration = new UIRegistration();
+        uiRegistration.setEmail("dashboard-user@example.com");
+        uiRegistration.setPassword(passwordEncoder.encode("test"));
+        uiRegistration.setFullName("dashboard-user-fullName");
+
+        // Duplicate email
+        UIRegistration duplicatedRegistration = new UIRegistration();
+        duplicatedRegistration.setEmail("dashboard-user@example.com");
+        duplicatedRegistration.setPassword(passwordEncoder.encode("test"));
+        duplicatedRegistration.setFullName("dashboard-user-fullName");
+
+        // Good user
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(uiRegistration)))
+                .andExpect(status().isCreated());
+
+        // Duplicate email
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(duplicatedRegistration)))
+                .andExpect(status().is4xxClientError());
+
+        // Duplicate email - with uppercase email address
+        UIRegistration duplicatedWithUpperCaseEmailRegistration = new UIRegistration();
+        duplicatedWithUpperCaseEmailRegistration.setEmail(uiRegistration.getEmail().toUpperCase());
+        duplicatedWithUpperCaseEmailRegistration.setPassword(passwordEncoder.encode("test"));
+        duplicatedWithUpperCaseEmailRegistration.setFullName("dashboard-user-fullName");
+
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(duplicatedRegistration)))
+                .andExpect(status().is4xxClientError());
+    }
+
+    @Test
+    @Transactional
+    @WithMockUser("save-invalid-email")
+    public void testSaveInvalidEmail() throws Exception {
+        User user = new User();
+        user.setLogin("save-invalid-email");
+        user.setEmail("save-invalid-email@example.com");
+        user.setPassword(RandomStringUtils.random(60));
+        user.setActivated(true);
+
+        userRepository.saveAndFlush(user);
+
+        UserDTO userDTO = new UserDTO();
+        userDTO.setLogin("not-used");
+        userDTO.setFirstName("firstname");
+        userDTO.setLastName("lastname");
+        userDTO.setEmail("invalid email");
+        userDTO.setActivated(false);
+        userDTO.setImageUrl("http://placehold.it/50x50");
+        userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
+        userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
+
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(userDTO)))
+                .andExpect(status().isBadRequest());
+
+        assertThat(userRepository.findOneByEmailIgnoreCase("invalid email")).isNotPresent();
+    }
+
+    @Test
+    @Transactional
+    @WithMockUser("save-existing-email")
+    public void testSaveExistingEmail() throws Exception {
+        User user = new User();
+        user.setLogin("save-existing-email");
+        user.setEmail("save-existing-email@example.com");
+        user.setPassword(RandomStringUtils.random(60));
+        user.setActivated(true);
+
+        userRepository.saveAndFlush(user);
+
+        User anotherUser = new User();
+        anotherUser.setLogin("save-existing-email2");
+        anotherUser.setEmail("save-existing-email2@example.com");
+        anotherUser.setPassword(RandomStringUtils.random(60));
+        anotherUser.setActivated(true);
+
+        userRepository.saveAndFlush(anotherUser);
+
+        UserDTO userDTO = new UserDTO();
+        userDTO.setLogin("not-used");
+        userDTO.setFirstName("firstname");
+        userDTO.setLastName("lastname");
+        userDTO.setEmail("save-existing-email2@example.com");
+        userDTO.setActivated(false);
+        userDTO.setImageUrl("http://placehold.it/50x50");
+        userDTO.setLangKey(Constants.DEFAULT_LANGUAGE);
+        userDTO.setAuthorities(Collections.singleton(AuthoritiesConstants.ADMIN));
+
+        mockMvc.perform(
+                post("/dashboard/auth/register")
+                        .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                        .content(TestUtil.convertObjectToJsonBytes(userDTO)))
+                .andExpect(status().isBadRequest());
+
+        User updatedUser = userRepository.findOneByLogin("save-existing-email").orElse(null);
+        assertThat(updatedUser.getEmail()).isEqualTo("save-existing-email@example.com");
+    }
+
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDeviceTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/RestDeviceTest.java
new file mode 100644 (file)
index 0000000..7cecf60
--- /dev/null
@@ -0,0 +1,216 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.controller.impl;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.domain.Device;
+import com.samsung.samserver.service.DeviceService;
+import com.samsung.samserver.service.DeviceTypeService;
+import com.samsung.samserver.web.rest.TestUtil;
+import com.samsung.samserver.web.rest.errors.ExceptionTranslator;
+import com.samsung.samserver.web.rest.service.vm.*;
+import org.hamcrest.Matchers;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import org.slf4j.*;
+import java.util.*;
+
+import static com.samsung.samserver.web.rest.TestUtil.createFormattingConversionService;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.hamcrest.Matchers.*;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
+import static com.samsung.samserver.web.rest.controller.impl.SampleObject.*;
+
+/**
+ * Test class for the Device REST controller.
+ *
+ * @see RestDevice
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class RestDeviceTest {
+
+    @Autowired
+    RestDevice restDevice;
+
+    @Autowired
+    private RestDashboard restDashboard;
+
+    @Autowired
+    private DeviceTypeService deviceTypeService;
+
+    @Autowired
+    private DeviceService deviceService;
+
+    @Autowired
+    private ExceptionTranslator exceptionTranslator;
+
+    private MockMvc mockMvcDevice;
+    private MockMvc mockMvcDashboard;
+
+    private final Logger log = LoggerFactory.getLogger(RestDeviceTest.class);
+
+    @Before
+    public void setUp() {
+        this.mockMvcDevice = MockMvcBuilders.standaloneSetup(restDevice)
+                .setControllerAdvice(exceptionTranslator)
+                .setConversionService(createFormattingConversionService())
+                .build();
+        this.mockMvcDashboard = MockMvcBuilders.standaloneSetup(restDashboard)
+                .setControllerAdvice(exceptionTranslator)
+                .setConversionService(createFormattingConversionService())
+                .build();
+    }
+
+    @Test
+    public void testRegisterDevice() throws Exception {
+        mockMvcDevice.perform(post("/api/device-service/register-device")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createRandomDInfo())))
+                .andExpect(status().isOk())
+                .andDo(mvcResult -> {
+                    String duid = mvcResult.getResponse().getContentAsString();
+                    log.info("testRegisterDevice: duid = "+duid);
+                    assertThat(deviceService.findOne(duid).isPresent()).isTrue();
+                });
+    }
+
+    @Test
+    public void testGetUpdatesNotModified() throws Exception {
+        String duid = mockMvcDevice.perform(post("/api/device-service/register-device")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createRandomDInfo())))
+                .andExpect(status().isOk())
+                .andReturn()
+                .getResponse().getContentAsString();
+
+        mockMvcDevice.perform(get("/api/device-service/get-updates")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", duid))
+                .andExpect(status().isNotModified())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(0)))
+        ;
+    }
+
+    @Test
+    public void testGetUpdates() throws Exception {
+        Device device = createRandomDevice();
+        deviceTypeService.save(device.getDtype());
+        deviceService.save(device);
+        mockMvcDashboard.perform(put("/dashboard/devices/update")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createUIDeviceUpdate(device.getId()))))
+                .andExpect(status().isOk());
+
+        mockMvcDevice.perform(get("/api/device-service/get-updates")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", device.getDuid()))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(1)))
+                .andExpect(jsonPath("$[0].type", is("settings")))
+                .andExpect(jsonPath("$[0].uri", Matchers.isA(String.class)))
+                .andExpect(jsonPath("$[0].curi", Matchers.isA(String.class)))
+                .andExpect(jsonPath("$[0].descr", Matchers.isA(String.class)))
+                .andExpect(jsonPath("$[0].rdate", Matchers.isA(String.class)))
+        ;
+    }
+
+    @Test
+    public void testSendData() throws Exception {
+        String duid = mockMvcDevice.perform(post("/api/device-service/register-device")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createRandomDInfo())))
+                .andExpect(status().isOk())
+                .andReturn()
+                .getResponse().getContentAsString();
+
+        mockMvcDevice.perform(post("/api/device-service/send-data")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", duid)
+                .content(TestUtil.convertObjectToJsonBytes(createRandomData())))
+                .andExpect(status().isOk());
+    }
+
+    @Test
+    public void testGetUData() throws Exception {
+        Device device = createRandomDevice();
+        deviceTypeService.save(device.getDtype());
+        deviceService.save(device);
+        mockMvcDashboard.perform(put("/dashboard/devices/update")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createUIDeviceUpdate(device.getId()))))
+                .andExpect(status().isOk());
+
+        String resp = mockMvcDevice.perform(get("/api/device-service/get-updates")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", device.getDuid()))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(1)))
+                .andReturn()
+                .getResponse().getContentAsString();
+
+        ObjectMapper mapper = new ObjectMapper();
+        List<UInfo> list = mapper.readValue(resp, new TypeReference<List<UInfo>>(){});
+        String uri = list.get(0).getUri();
+        log.info("testGetUData: "+uri);
+
+        mockMvcDevice.perform(get(uri))
+                .andExpect(status().isOk())
+                .andDo(mvcResult -> {
+                    String data = mvcResult.getResponse().getContentAsString();
+                    log.info("testGetUData: data = "+data);
+                    assertThat(!data.isEmpty()).isTrue();
+                });
+    }
+
+    @Test
+    public void testSendDataConfirm() throws Exception {
+        Device device = createRandomDevice();
+        deviceTypeService.save(device.getDtype());
+        deviceService.save(device);
+        mockMvcDashboard.perform(put("/dashboard/devices/update")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .content(TestUtil.convertObjectToJsonBytes(createUIDeviceUpdate(device.getId()))))
+                .andExpect(status().isOk());
+
+        String resp = mockMvcDevice.perform(get("/api/device-service/get-updates")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", device.getDuid()))
+                .andExpect(status().isOk())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(1)))
+                .andReturn()
+                .getResponse().getContentAsString();
+
+        ObjectMapper mapper = new ObjectMapper();
+        List<UInfo> list = mapper.readValue(resp, new TypeReference<List<UInfo>>(){});
+        String curi = list.get(0).getCuri();
+        log.info("testSendDataConfirm: "+curi);
+
+        mockMvcDevice.perform(post(curi))
+                .andExpect(status().isOk());
+
+        mockMvcDevice.perform(get("/api/device-service/get-updates")
+                .contentType(TestUtil.APPLICATION_JSON_UTF8)
+                .param("duid", device.getDuid()))
+                .andExpect(status().isNotModified())
+                .andExpect(content().contentType(TestUtil.APPLICATION_JSON_UTF8))
+                .andExpect(jsonPath("$", hasSize(0)))
+        ;
+    }
+
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/SampleObject.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/controller/impl/SampleObject.java
new file mode 100644 (file)
index 0000000..441e00b
--- /dev/null
@@ -0,0 +1,108 @@
+package com.samsung.samserver.web.rest.controller.impl;
+
+import com.samsung.samserver.domain.*;
+import com.samsung.samserver.web.rest.service.vm.*;
+import org.springframework.security.crypto.password.StandardPasswordEncoder;
+
+import java.time.Instant;
+import java.util.*;
+
+import static org.apache.commons.lang3.RandomStringUtils.*;
+
+class SampleObject {
+
+    static Device createRandomDevice() {
+        final int len = 10;
+        final String duid = randomAlphanumeric(len);
+        final Instant ctime = Instant.now();
+        final String model = randomAlphanumeric(len);
+        final String sn = randomAlphanumeric(len);
+        final String sw = randomAlphanumeric(len);
+        final String osname = randomAlphanumeric(len);
+        final String osver = randomAlphanumeric(len);
+        final String ipaddr = "106.125.46.74";
+
+        return new Device()
+                .duid(duid)
+                .ctime(ctime)
+                .model(model)
+                .sn(sn)
+                .sw(sw)
+                .osname(osname)
+                .osver(osver)
+                .ipaddr(ipaddr)
+                .dtype(new DeviceType(randomAlphanumeric(len),randomAlphanumeric(len)));
+    }
+
+    static User createRandomUser() {
+        final int len = 8;
+        final String email = randomAlphabetic(len).toLowerCase()+"@test.com";
+        final String login = email;
+        final String pass = randomAlphanumeric(len);
+        User user = new User();
+        user.setEmail(email);
+        user.setLogin(login);
+        user.setPassword((new StandardPasswordEncoder()).encode(pass));
+        user.setActivated(true);
+        return user;
+    }
+
+    static UIRegistration createRandomUIRegistration() {
+        final int len = 8;
+        final String email = randomAlphabetic(len).toLowerCase()+"@test.com";
+        final String pass = randomAlphanumeric(len);
+        final String fullName = randomAlphabetic(len);
+        UIRegistration uiRegistration = new UIRegistration();
+        uiRegistration.setEmail(email);
+        uiRegistration.setPassword((new StandardPasswordEncoder()).encode(pass));
+        uiRegistration.setFullName(fullName);
+        return uiRegistration;
+    }
+
+    static UIDeviceUpdate createUIDeviceUpdate(Long id) {
+        UIDeviceUpdate.UIDeviceUpdateOne uiDeviceUpdateOne = new UIDeviceUpdate.UIDeviceUpdateOne();
+        uiDeviceUpdateOne.setId(id);
+        uiDeviceUpdateOne.setLocked(1);
+        ArrayList<UIDeviceUpdate.UIDeviceUpdateOne> al = new ArrayList<>();
+        al.add(uiDeviceUpdateOne);
+        return UIDeviceUpdate.builder().updates(al).build();
+    }
+
+    static DInfo createRandomDInfo() {
+        final int len = 10;
+        final String type = randomAlphanumeric(len);
+        final String model = randomAlphanumeric(len);
+        final String sn = randomAlphanumeric(len);
+        final String sw = randomAlphanumeric(len);
+        final String osname = randomAlphanumeric(len);
+        final String osver = randomAlphanumeric(len);
+
+        DInfo dInfo = new DInfo();
+        dInfo.setType(type);
+        dInfo.setModel(model);
+        dInfo.setSn(sn);
+        dInfo.setSw(sw);
+        dInfo.setOsname(osname);
+        dInfo.setOsver(osver);
+        return dInfo;
+    }
+
+    /*
+     * generate device report
+     */
+    static Data createRandomData() {
+        final int len = 10;
+        final List<Data.Logs> logs = new ArrayList<>();
+        Data.Logs dataLogs = new Data.Logs();
+        dataLogs.setLog(randomAlphanumeric(len));
+        dataLogs.setModule(randomAlphanumeric(len));
+        logs.add(dataLogs);
+
+        Data data = new Data();
+        data.setType("report");
+        data.setCtime(Instant.now().toString());
+        data.setLogs(logs);
+        return data;
+    }
+
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/GetUpdatesRestServiceTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/GetUpdatesRestServiceTest.java
new file mode 100644 (file)
index 0000000..f8abf96
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.device;
+
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.domain.Updates;
+import com.samsung.samserver.service.DeviceService;
+import com.samsung.samserver.service.UpdatesService;
+import com.samsung.samserver.web.rest.errors.DeviceServiceError;
+import com.samsung.samserver.web.rest.service.vm.UInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import org.mockito.*;
+
+import java.util.*;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the GetUpdatesRestService.
+ *
+ * @see GetUpdatesRestService
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class GetUpdatesRestServiceTest {
+
+    @Mock
+    Logger log;
+    @Mock
+    DeviceService deviceService;
+    @Mock
+    UpdatesService updatesService;
+
+    @Autowired
+    GetUpdatesRestService getUpdatesRestService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test (expected = DeviceServiceError.DeviceNotFoundException.class)
+    public void testGetUpdates() throws Exception {
+        when(deviceService.findOne(anyString())).thenReturn(null);
+        when(updatesService.find(any())).thenReturn(Arrays.<Updates>asList(new Updates(null, "type", "uri", null, "descr", null, null)));
+
+        ResponseEntity<List<UInfo>> result = getUpdatesRestService.getUpdates("duid");
+        Assert.assertEquals(null, result);
+    }
+
+    @Test (expected = DeviceServiceError.DeviceNotFoundException.class)
+    public void testGetUData() throws Exception {
+        when(deviceService.findOne(anyString())).thenReturn(null);
+        when(updatesService.find(anyString(), any())).thenReturn(null);
+
+        ResponseEntity<String> result = getUpdatesRestService.getUData("duid", "uuid");
+        Assert.assertEquals(null, result);
+    }
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/RegisterDeviceRestServiceTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/RegisterDeviceRestServiceTest.java
new file mode 100644 (file)
index 0000000..d22c9a3
--- /dev/null
@@ -0,0 +1,63 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.device;
+
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.domain.Device;
+import com.samsung.samserver.domain.DeviceType;
+import com.samsung.samserver.service.DeviceService;
+import com.samsung.samserver.service.DeviceTypeService;
+import com.samsung.samserver.web.rest.service.vm.DInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import org.mockito.*;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the RegisterDeviceRestService.
+ *
+ * @see RegisterDeviceRestService
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class RegisterDeviceRestServiceTest {
+    @Mock
+    Logger log;
+    @Mock
+    DeviceTypeService deviceTypeService;
+    @Mock
+    DeviceService deviceService;
+
+    @Autowired
+    RegisterDeviceRestService registerDeviceRestService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testRegisterDevice() throws Exception {
+        when(deviceTypeService.save(any())).thenReturn(new DeviceType("name", "descr"));
+        when(deviceTypeService.findOne(anyString())).thenReturn(null);
+        when(deviceService.save(any())).thenReturn(new Device());
+        when(deviceService.findOne(anyString())).thenReturn(null);
+        when(deviceService.getDeviceUID(any(), any(), any())).thenReturn("getDeviceUIDResponse");
+
+        DInfo dInfo = new DInfo();
+        dInfo.setType("type");
+        ResponseEntity<String> result = registerDeviceRestService.registerDevice(dInfo, new MockHttpServletRequest());
+        Assert.assertEquals(HttpStatus.OK, result.getStatusCode());
+    }
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/SendDataRestServiceTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/device/SendDataRestServiceTest.java
new file mode 100644 (file)
index 0000000..f3c73ca
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.device;
+
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.domain.*;
+import com.samsung.samserver.service.*;
+import com.samsung.samserver.web.rest.errors.DeviceServiceError;
+import com.samsung.samserver.web.rest.service.vm.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import org.mockito.*;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the SendDataRestService.
+ *
+ * @see SendDataRestService
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class SendDataRestServiceTest {
+    @Mock
+    Logger log;
+    @Mock
+    DeviceService deviceService;
+    @Mock
+    ReportService reportService;
+    @Mock
+    ReportTypeService reportTypeService;
+    @Mock
+    AnalyzeService analyzeService;
+    @Mock
+    UpdatesService updatesService;
+
+    @Autowired
+    SendDataRestService sendDataRestService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test (expected = DeviceServiceError.DeviceNotFoundException.class)
+    public void testSendData() throws Exception {
+        when(deviceService.findOne(anyString())).thenReturn(null);
+        when(reportService.save(any())).thenReturn(new Report("data", new ReportType("name", "descr"), new Device()));
+        when(reportTypeService.save(any())).thenReturn(new ReportType("name", "descr"));
+        when(reportTypeService.findOne(anyString())).thenReturn(null);
+
+        ResponseEntity<Void> result = sendDataRestService.sendData("duid", new Data());
+        Assert.assertEquals(null, result);
+    }
+
+    @Test (expected = DeviceServiceError.DeviceNotFoundException.class)
+    public void testSendDataConfirm() throws Exception {
+        when(deviceService.findOne(anyString())).thenReturn(null);
+
+        ResponseEntity<Void> result = sendDataRestService.sendDataConfirm("duid", "uuid");
+        Assert.assertEquals(null, result);
+    }
+}
index 209a1c0..edf61f7 100644 (file)
@@ -5,14 +5,19 @@
  */
 package com.samsung.samserver.web.rest.service.ui;
 
+import com.samsung.samserver.SamserverApp;
 import com.samsung.samserver.service.DeviceService;
 import com.samsung.samserver.service.impl.GeoIPService;
 import com.samsung.samserver.web.rest.service.vm.UIDevice;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.http.*;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
 import org.junit.*;
 import org.mockito.*;
-import org.slf4j.Logger;
 import java.util.List;
 
 import static org.mockito.Mockito.*;
@@ -22,6 +27,8 @@ import static org.mockito.Mockito.*;
  *
  * @see GetDevicesRestService
  */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
 public class GetDevicesRestServiceTest {
     @Mock
     Logger log;
@@ -29,7 +36,8 @@ public class GetDevicesRestServiceTest {
     DeviceService deviceService;
     @Mock
     GeoIPService geoIPService;
-    @InjectMocks
+
+    @Autowired
     GetDevicesRestService getDevicesRestService;
 
     @Before
@@ -42,7 +50,7 @@ public class GetDevicesRestServiceTest {
         when(deviceService.findAll(any())).thenReturn(null);
         when(geoIPService.getGeo(any())).thenReturn(null);
 
-        //ResponseEntity<List<UIDevice>> result = getDevicesRestService.getAllDevices(new PageRequest(0,1));
-        //Assert.assertEquals(HttpStatus.OK, result.getStatusCode());
+        ResponseEntity<List<UIDevice>> result = getDevicesRestService.getAllDevices(new PageRequest(0,1));
+        Assert.assertEquals(HttpStatus.OK, result.getStatusCode());
     }
 }
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/ui/LogDashboardRestServiceTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/ui/LogDashboardRestServiceTest.java
new file mode 100644 (file)
index 0000000..c534e27
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.ui;
+
+import com.samsung.samserver.SamserverApp;
+import com.samsung.samserver.web.rest.errors.InternalServerErrorException;
+import com.samsung.samserver.web.rest.service.vm.UIDashboardLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
+import org.junit.*;
+import org.mockito.*;
+
+/**
+ * Test class for the LogDashboardRestService.
+ *
+ * @see LogDashboardRestService
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
+public class LogDashboardRestServiceTest {
+    @Mock
+    Logger log;
+
+    @Autowired
+    LogDashboardRestService logDashboardRestService;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test (expected = InternalServerErrorException.class)
+    public void testSendDashboardLogs() throws Exception {
+        ResponseEntity<Void> result = logDashboardRestService.sendDashboardLogs(new UIDashboardLog());
+        Assert.assertEquals(null, result);
+    }
+}
index 14a24d9..a6f185a 100644 (file)
@@ -5,17 +5,20 @@
  */
 package com.samsung.samserver.web.rest.service.ui;
 
+import com.samsung.samserver.SamserverApp;
 import com.samsung.samserver.domain.Device;
 import com.samsung.samserver.service.*;
 import com.samsung.samserver.service.impl.GeoIPService;
 import com.samsung.samserver.web.rest.service.vm.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.http.*;
+import org.slf4j.Logger;
+import org.junit.runner.RunWith;
 import org.junit.*;
 import org.mockito.*;
-import org.slf4j.Logger;
-
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
 
 import static org.mockito.Mockito.*;
 
@@ -24,6 +27,8 @@ import static org.mockito.Mockito.*;
  *
  * @see UpdateDevicesRestService
  */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = SamserverApp.class)
 public class UpdateDevicesRestServiceTest {
     @Mock
     Logger log;
@@ -33,7 +38,8 @@ public class UpdateDevicesRestServiceTest {
     GeoIPService geoIPService;
     @Mock
     LockService lockService;
-    @InjectMocks
+
+    @Autowired
     UpdateDevicesRestService updateDevicesRestService;
 
     @Before
@@ -47,9 +53,8 @@ public class UpdateDevicesRestServiceTest {
         when(deviceService.findOne(anyLong())).thenReturn(new Device());
         when(geoIPService.getGeo(any())).thenReturn(null);
 
-        UIDeviceUpdate uiDeviceUpdate = new UIDeviceUpdate();
-        uiDeviceUpdate.setUpdates(new ArrayList<>());
-        ResponseEntity<List<UIDevice>> result = updateDevicesRestService.updateDevice(uiDeviceUpdate);
+        ResponseEntity<List<UIDevice>> result = updateDevicesRestService.updateDevice(
+            UIDeviceUpdate.builder().updates(new ArrayList<>()).build());
 
         Assert.assertEquals(HttpStatus.OK, result.getStatusCode());
     }
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DInfoTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DInfoTest.java
new file mode 100644 (file)
index 0000000..1c52bf7
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test class for the DInfo.
+ *
+ * @see DInfo
+ */
+public class DInfoTest {
+    DInfo dInfo = new DInfo();
+
+    @Test
+    public void testSetType() throws Exception {
+        dInfo.setType("type");
+    }
+
+    @Test
+    public void testSetModel() throws Exception {
+        dInfo.setModel("model");
+    }
+
+    @Test
+    public void testSetSn() throws Exception {
+        dInfo.setSn("sn");
+    }
+
+    @Test
+    public void testSetSw() throws Exception {
+        dInfo.setSw("sw");
+    }
+
+    @Test
+    public void testSetOsname() throws Exception {
+        dInfo.setOsname("osname");
+    }
+
+    @Test
+    public void testSetOsver() throws Exception {
+        dInfo.setOsver("osver");
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = dInfo.toString();
+        Assert.assertEquals("DInfo(type=null, model=null, sn=null, sw=null, osname=null, osver=null)", result);
+    }
+}
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DataTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/DataTest.java
new file mode 100644 (file)
index 0000000..811abfa
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Test class for the Data.
+ *
+ * @see Data
+ */
+public class DataTest {
+    @Mock
+    List<Data.Logs> logs;
+    @InjectMocks
+    Data data;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testSetType() throws Exception {
+        data.setType("type");
+    }
+
+    @Test
+    public void testSetCtime() throws Exception {
+        data.setCtime("ctime");
+    }
+
+    @Test
+    public void testSetLogs() throws Exception {
+        data.setLogs(Arrays.<Data.Logs>asList(new Data.Logs()));
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = data.toString();
+        Assert.assertEquals("Data(type=null, ctime=null, logs=logs)", result);
+    }
+
+
+    Data.Logs datalogs = new Data.Logs();
+
+    @Test
+    public void logsTestSetModule() throws Exception {
+        datalogs.setModule("module");
+    }
+
+    @Test
+    public void logsTestSetLog() throws Exception {
+        datalogs.setLog("log");
+    }
+
+    @Test
+    public void logsTestToString() throws Exception {
+        String result = logs.toString();
+        Assert.assertEquals("logs", result);
+    }
+
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIDashboardLogTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIDashboardLogTest.java
new file mode 100644 (file)
index 0000000..beb5a32
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+
+import java.util.Arrays;
+import java.util.List;
+
+import static org.mockito.Mockito.*;
+
+/**
+ * Test class for the UIDashboardLog.
+ *
+ * @see UIDashboardLog
+ */
+public class UIDashboardLogTest {
+    @Mock
+    List<String> additional;
+    @InjectMocks
+    UIDashboardLog uIDashboardLog;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+    }
+
+    @Test
+    public void testSetLevel() throws Exception {
+        uIDashboardLog.setLevel("level");
+    }
+
+    @Test
+    public void testSetMessage() throws Exception {
+        uIDashboardLog.setMessage("message");
+    }
+
+    @Test
+    public void testSetTimestamp() throws Exception {
+        uIDashboardLog.setTimestamp("timestamp");
+    }
+
+    @Test
+    public void testSetAdditional() throws Exception {
+        uIDashboardLog.setAdditional(Arrays.<String>asList("String"));
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = uIDashboardLog.toString();
+        Assert.assertEquals("UIDashboardLog(level=null, message=null, timestamp=null, additional=additional)", result);
+    }
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UILoginTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UILoginTest.java
new file mode 100644 (file)
index 0000000..20d54e5
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test class for the UILogin.
+ *
+ * @see UILogin
+ */
+public class UILoginTest {
+    UILogin uILogin = new UILogin();
+
+    @Test
+    public void testGetRememberMe() throws Exception {
+        Boolean result = uILogin.getRememberMe();
+        Assert.assertEquals(Boolean.FALSE, result);
+        uILogin.setRememberMe(Boolean.TRUE);
+        result = uILogin.getRememberMe();
+        Assert.assertEquals(Boolean.TRUE, result);
+    }
+
+    @Test
+    public void testSetRememberMe() throws Exception {
+        uILogin.setRememberMe(Boolean.TRUE);
+    }
+
+    @Test
+    public void testSetEmail() throws Exception {
+        uILogin.setEmail("email");
+    }
+
+    @Test
+    public void testSetPassword() throws Exception {
+        uILogin.setPassword("password");
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = uILogin.toString();
+        Assert.assertEquals("UILogin(email=null, password=null, rememberMe=false)", result);
+    }
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIRegistrationTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UIRegistrationTest.java
new file mode 100644 (file)
index 0000000..41a15a2
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test class for the UIRegistration.
+ *
+ * @see UIRegistration
+ */
+public class UIRegistrationTest {
+    UIRegistration uIRegistration = new UIRegistration();
+
+    @Test
+    public void testSetFullName() throws Exception {
+        uIRegistration.setFullName("fullName");
+    }
+
+    @Test
+    public void testSetEmail() throws Exception {
+        uIRegistration.setEmail("email");
+    }
+
+    @Test
+    public void testSetPassword() throws Exception {
+        uIRegistration.setPassword("password");
+    }
+
+    @Test
+    public void testSetConfirmPassword() throws Exception {
+        uIRegistration.setConfirmPassword("confirmPassword");
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = uIRegistration.toString();
+        Assert.assertEquals("UIRegistration(fullName=null, email=null, password=null, confirmPassword=null)", result);
+    }
+}
\ No newline at end of file
diff --git a/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UInfoTest.java b/server/samserver/src/test/java/com/samsung/samserver/web/rest/service/vm/UInfoTest.java
new file mode 100644 (file)
index 0000000..62d6295
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ * In Samsung Ukraine R&D Center (SRK under a contract between)
+ * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
+ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
+ */
+package com.samsung.samserver.web.rest.service.vm;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Test class for the UInfo.
+ *
+ * @see UInfo
+ */
+public class UInfoTest {
+    UInfo uInfo = new UInfo("type", "uri", "curi", "rDate", "descr");
+
+    @Test
+    public void testSetType() throws Exception {
+        uInfo.setType("type");
+    }
+
+    @Test
+    public void testSetUri() throws Exception {
+        uInfo.setUri("uri");
+    }
+
+    @Test
+    public void testSetCuri() throws Exception {
+        uInfo.setCuri("curi");
+    }
+
+    @Test
+    public void testSetRDate() throws Exception {
+        uInfo.setRDate("rDate");
+    }
+
+    @Test
+    public void testSetDescr() throws Exception {
+        uInfo.setDescr("descr");
+    }
+
+    @Test
+    public void testToString() throws Exception {
+        String result = uInfo.toString();
+        Assert.assertEquals("UInfo(type=type, uri=uri, curi=curi, rDate=rDate, descr=descr)", result);
+    }
+}
\ No newline at end of file