Commit 27eae175 authored by 0Tyler's avatar 0Tyler

defaultData

parent 66a7177f
......@@ -7,13 +7,14 @@
</component>
<component name="ChangeListManager">
<list default="true" id="d3a5f2c9-d22f-4974-88fb-d506b4e5feaf" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/cloud/src/main/resources/document/心跳血氧機檢測報告.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/resources/document/氣體感測器檢測報告.pdf" afterDir="false" />
<change afterPath="$PROJECT_DIR$/cloud/src/main/resources/document/紫外線傳感器檢測報告.pdf" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/4.10.3/fileHashes/fileHashes.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/build/test-results/test/binary/output.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" beforeDir="false" afterPath="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/build/" />
......@@ -140,8 +141,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4075">
<caret line="44" selection-start-line="44" selection-end-line="44" />
<state relative-caret-position="230">
<caret line="493" column="99" selection-start-line="493" selection-start-column="99" selection-end-line="493" selection-end-column="99" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -150,58 +151,55 @@
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" />
<state relative-caret-position="916">
<caret line="81" selection-start-line="81" selection-end-line="81" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/Resource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="92">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<state relative-caret-position="-1598">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-51">
<caret line="33" column="29" selection-start-line="33" selection-start-column="29" selection-end-line="33" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="397">
<caret line="53" column="13" selection-start-line="53" selection-start-column="13" selection-end-line="53" selection-end-column="13" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/InputStream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="39" selection-start-line="39" selection-end-line="39" />
<state relative-caret-position="-1056">
<caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="717">
<caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
<state relative-caret-position="180">
<caret line="31" column="32" selection-start-line="31" selection-start-column="32" selection-end-line="31" selection-end-column="32" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="326">
<caret line="87" column="62" selection-start-line="87" selection-start-column="41" selection-end-line="87" selection-end-column="62" />
<state relative-caret-position="-433">
<caret line="28" column="11" selection-start-line="28" selection-start-column="11" selection-end-line="28" selection-end-column="11" />
<folding>
<element signature="imports" expanded="true" />
</folding>
......@@ -210,28 +208,28 @@
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java">
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="129">
<caret line="62" column="72" selection-start-line="62" selection-start-column="72" selection-end-line="62" selection-end-column="72" />
<state relative-caret-position="463">
<caret line="61" column="5" selection-start-line="61" selection-start-column="5" selection-end-line="61" selection-end-column="5" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/DeviceService.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="111">
<caret line="28" column="54" selection-start-line="28" selection-start-column="54" selection-end-line="28" selection-end-column="54" />
<state relative-caret-position="270">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/RemoteService.java">
<entry file="jar://$USER_HOME$/.gradle/wrapper/dists/gradle-4.10.3-bin/31t79e2qsceia4mkbojplrgx/gradle-4.10.3/lib/gradle-core-api-4.10.3.jar!/org/gradle/api/Project.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="111">
<caret line="61" column="28" selection-start-line="61" selection-start-column="28" selection-end-line="61" selection-end-column="28" />
<state relative-caret-position="-4569">
<caret line="2" column="37" selection-start-line="2" selection-start-column="37" selection-end-line="2" selection-end-column="37" />
</state>
</provider>
</entry>
......@@ -248,7 +246,6 @@
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>DeviceIndex</find>
<find>getPrivacyPolicyChoices</find>
<find>username</find>
<find>upc</find>
......@@ -278,6 +275,7 @@
<find>\\</find>
<find>getname</find>
<find>.udn</find>
<find>document</find>
</findStrings>
<replaceStrings>
<replace>cloud</replace>
......@@ -333,7 +331,6 @@
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/repositories/PrivacyChoiceRepository.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/PrivacyChoiceService.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyContent.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java" />
......@@ -347,9 +344,10 @@
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/services/PrivacyService.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java" />
<option value="$PROJECT_DIR$/gateway/src/test/java/edu/prlab/tyler/iotgateway/gateway/GatewayHttpApiTest.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" />
<option value="$PROJECT_DIR$/cloud/build.gradle" />
<option value="$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java" />
<option value="$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java" />
<option value="$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java" />
</list>
</option>
</component>
......@@ -436,42 +434,7 @@
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="auth" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="device" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -479,58 +442,32 @@
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="pojo" type="462c0819:PsiDirectoryNode" />
<item name="privacy" type="462c0819:PsiDirectoryNode" />
<item name="p3p" type="462c0819:PsiDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="document" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="repositories" type="462c0819:PsiDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="services" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="test" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cloud" type="462c0819:PsiDirectoryNode" />
<item name="util" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
<item name="iotgateway" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="cloud" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="resources" type="462c0819:PsiDirectoryNode" />
<item name="document" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="iotgateway" type="b2602c69:ProjectViewProjectNode" />
......@@ -754,6 +691,25 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:cloud [clean]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$/cloud" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="clean" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="iotgateway:gateway [build]" type="GradleRunConfiguration" factoryName="Gradle" temporary="true">
<ExternalSystemSettings>
<option name="executionName" />
......@@ -792,31 +748,16 @@
<GradleScriptDebugEnabled>true</GradleScriptDebugEnabled>
<method v="2" />
</configuration>
<configuration name="ContractTester" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.contract.test" />
<configuration name="CloudHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.cloud.test" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.contract.*" />
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.cloud.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.contract" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.contract.ContractTester" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="GatewayHttpApiTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<module name="iotgateway.gateway.test" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="edu.prlab.tyler.iotgateway.gateway.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.gateway" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" />
<option name="PACKAGE_NAME" value="edu.prlab.tyler.iotgateway.cloud" />
<option name="MAIN_CLASS_NAME" value="edu.prlab.tyler.iotgateway.cloud.CloudHttpApiTest" />
<option name="TEST_OBJECT" value="class" />
<method v="2">
<option name="Make" enabled="true" />
......@@ -850,23 +791,23 @@
</method>
</configuration>
<list>
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.ContractTester" />
<item itemvalue="Multirun.iotgateway" />
<item itemvalue="Spring Boot.GatewayApplication" />
<item itemvalue="Spring Boot.CloudApplication" />
<item itemvalue="Spring Boot.ContractApplication" />
<item itemvalue="Gradle.iotgateway:gateway [clean]" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="JUnit.CloudHttpApiTest" />
</list>
<recent_temporary>
<list>
<item itemvalue="JUnit.CloudHttpApiTest" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
<item itemvalue="Gradle.iotgateway:cloud [clean]" />
<item itemvalue="Gradle.iotgateway:gateway [build]" />
<item itemvalue="Gradle.iotgateway:gateway [clean]" />
<item itemvalue="JUnit.GatewayHttpApiTest" />
<item itemvalue="JUnit.ContractTester" />
<item itemvalue="Gradle.iotgateway:cloud [build]" />
</list>
</recent_temporary>
</component>
......@@ -889,7 +830,7 @@
<workItem from="1558076620952" duration="30942000" />
<workItem from="1558531083647" duration="61839000" />
<workItem from="1559030426004" duration="26881000" />
<workItem from="1559534946076" duration="4327000" />
<workItem from="1559534946076" duration="7818000" />
</task>
<task id="LOCAL-00001" summary="git init">
<created>1556204675975</created>
......@@ -1066,13 +1007,17 @@
<option name="project" value="LOCAL" />
<updated>1559538122477</updated>
</task>
<option name="localTasksCounter" value="26" />
<task id="LOCAL-00026" summary="defaultData">
<created>1559539312059</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1559539312059</updated>
</task>
<option name="localTasksCounter" value="27" />
<servers />
</component>
<component name="TestHistory">
<history-entry file="GatewayHttpApiTest - 2019.05.31 at 17h 51m 59s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="ContractTester - 2019.05.31 at 17h 52m 49s.xml">
<configuration name="ContractTester" configurationId="JUnit" />
</history-entry>
......@@ -1100,9 +1045,12 @@
<history-entry file="GatewayHttpApiTest - 2019.06.03 at 12h 28m 42s.xml">
<configuration name="GatewayHttpApiTest" configurationId="JUnit" />
</history-entry>
<history-entry file="CloudHttpApiTest - 2019.06.03 at 14h 10m 43s.xml">
<configuration name="CloudHttpApiTest" configurationId="JUnit" />
</history-entry>
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="324029000" />
<option name="totallyTimeSpent" value="327520000" />
</component>
<component name="TodoView">
<todo-panel id="selected-file">
......@@ -1114,7 +1062,8 @@
</todo-panel>
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="7" />
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.1988273" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
......@@ -1122,11 +1071,11 @@
<window_info id="UI Designer" order="3" />
<window_info id="Favorites" order="4" side_tool="true" />
<window_info id="Web" order="5" side_tool="true" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.422049" />
<window_info anchor="bottom" id="Run Dashboard" order="0" sideWeight="0.49946696" weight="0.77616924" />
<window_info anchor="bottom" id="Messages" order="1" sideWeight="0.49733475" weight="0.2806236" />
<window_info anchor="bottom" id="Message" order="2" />
<window_info anchor="bottom" id="Find" order="3" sideWeight="0.4989339" weight="0.3596882" />
<window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.5155902" />
<window_info active="true" anchor="bottom" id="Run" order="4" sideWeight="0.49840087" visible="true" weight="0.3518931" />
<window_info anchor="bottom" id="Debug" order="5" weight="0.2962138" />
<window_info anchor="bottom" id="Cvs" order="6" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="7" weight="0.4" />
......@@ -1200,45 +1149,6 @@
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/pojo/PrivacyChoiceIndex.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="198">
<caret line="18" column="20" lean-forward="true" selection-start-line="18" selection-start-column="20" selection-end-line="18" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Builder.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="199">
<caret line="114" column="17" selection-start-line="114" selection-start-column="8" selection-end-line="114" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/Data.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="40" column="15" selection-start-line="40" selection-start-column="15" selection-end-line="40" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.projectlombok/lombok/1.18.6/2908ec27909c1929a9f2e031e4ae27e54d268860/lombok-1.18.6-sources.jar!/lombok/EqualsAndHashCode.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="181">
<caret line="59" column="85" selection-start-line="59" selection-start-column="77" selection-end-line="59" selection-end-column="85" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/util/Collection.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="579" column="15" selection-start-line="579" selection-start-column="15" selection-end-line="579" selection-end-column="15" />
<folding>
<element signature="e#26957#26958#0" expanded="true" />
<element signature="e#27022#27023#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/27.1-jre/5dfa313690a903560bf27478345780a607bf1e9b/guava-27.1-jre-sources.jar!/com/google/common/collect/MapMaker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-108">
......@@ -1364,13 +1274,6 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/DocumentController.java" />
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/Resource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="293">
<caret line="48" column="16" selection-start-line="48" selection-start-column="16" selection-end-line="48" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/ByteArrayResource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-445">
......@@ -1476,13 +1379,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="522">
<caret line="41" column="46" selection-start-line="41" selection-start-column="31" selection-end-line="41" selection-end-column="46" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/util/CodeTools.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="72">
......@@ -1504,13 +1400,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="26" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/contract/src/test/java/edu/prlab/tyler/iotgateway/contract/ContractTester.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="503">
......@@ -1549,51 +1438,107 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-51">
<caret line="33" column="29" selection-start-line="33" selection-start-column="29" selection-end-line="33" selection-end-column="29" />
<folding>
<element signature="imports" expanded="true" />
</folding>
<state relative-caret-position="717">
<caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/build.gradle">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="717">
<caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
<state relative-caret-position="92">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="306">
<caret line="25" column="1" selection-start-line="25" selection-start-column="1" selection-end-line="25" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="234">
<caret line="13" column="26" selection-start-line="13" selection-start-column="26" selection-end-line="13" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/wrapper/dists/gradle-4.10.3-bin/31t79e2qsceia4mkbojplrgx/gradle-4.10.3/lib/gradle-core-api-4.10.3.jar!/org/gradle/api/Project.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4569">
<caret line="2" column="37" selection-start-line="2" selection-start-column="37" selection-end-line="2" selection-end-column="37" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="125">
<caret line="39" selection-start-line="39" selection-end-line="39" />
<state relative-caret-position="463">
<caret line="61" column="5" selection-start-line="61" selection-start-column="5" selection-end-line="61" selection-end-column="5" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/InputStreamSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="397">
<caret line="53" column="13" selection-start-line="53" selection-start-column="13" selection-end-line="53" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://C:/Program Files/Java/jdk1.8.0_201/src.zip!/java/io/InputStream.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1056">
<caret line="44" column="22" selection-start-line="44" selection-start-column="22" selection-end-line="44" selection-end-column="22" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/controllers/GatewayController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-4075">
<caret line="44" selection-start-line="44" selection-end-line="44" />
<state relative-caret-position="-433">
<caret line="28" column="11" selection-start-line="28" selection-start-column="11" selection-end-line="28" selection-end-column="11" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/pojo/privacy/PrivacyPolicyReport.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/controllers/DocumentController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="92">
<caret line="17" column="13" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<state relative-caret-position="180">
<caret line="31" column="32" selection-start-line="31" selection-start-column="32" selection-end-line="31" selection-end-column="32" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/gateway/src/main/java/edu/prlab/tyler/iotgateway/gateway/model/PrivacyPolicyReportResponse.java">
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/services/DocumentService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288">
<caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" />
<state relative-caret-position="270">
<caret line="23" column="33" selection-start-line="23" selection-start-column="33" selection-end-line="23" selection-end-column="33" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.springframework/spring-core/5.1.6.RELEASE/aa74700198d24e1ed8b3c8ad663ad50733658ac6/spring-core-5.1.6.RELEASE-sources.jar!/org/springframework/core/io/Resource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1598">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/main/java/edu/prlab/tyler/iotgateway/cloud/config/DefaultData.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="493" column="99" selection-start-line="493" selection-start-column="99" selection-end-line="493" selection-end-column="99" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/cloud/src/test/java/edu/prlab/tyler/iotgateway/cloud/CloudHttpApiTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="916">
<caret line="81" selection-start-line="81" selection-end-line="81" />
</state>
</provider>
</entry>
......
......@@ -57,4 +57,7 @@ bootJar {
attributes 'Start-Class': 'edu.prlab.tyler.iotgateway.cloud.CloudApplication'
attributes 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
}
}
\ No newline at end of file
from('src/main/resources/document') {
into('document')
}
}
......@@ -18,9 +18,8 @@ import org.springframework.core.io.Resource;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Optional;
import static java.util.Arrays.asList;
......@@ -491,9 +490,9 @@ public class DefaultData implements ApplicationRunner {
private Optional<MockMultipartFile> resourceToMultipartFile(Resource resource) {
try {
File file = resource.getFile();
return Optional.of(new MockMultipartFile(file.getName(), file.getName(),
"application/pdf", new FileInputStream(file)));
InputStream file = resource.getInputStream();
return Optional.of(new MockMultipartFile(resource.getFilename(), resource.getFilename(),
"application/pdf", resource.getInputStream()));
} catch (IOException e) {
e.printStackTrace();
}
......
......@@ -80,8 +80,6 @@ public class CloudHttpApiTest {
System.out.println("The return device = " + device.toString());
Assert.assertNotNull(device);
result = mvc.perform(MockMvcRequestBuilders
.get("/device")
.accept(MediaType.APPLICATION_JSON_UTF8))
......
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt;
<a href="../packages/edu.prlab.tyler.iotgateway.gateway.html">edu.prlab.tyler.iotgateway.gateway</a> &gt; GatewayApplicationTests</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.031s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Standard output</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Tests</h2>
<table>
<thead>
<tr>
<th>Test</th>
<th>Duration</th>
<th>Result</th>
</tr>
</thead>
<tr>
<td class="success">contextLoads</td>
<td class="success">0.031s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard output</h2>
<span class="code">
<pre>14:13:26.293 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.299 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
14:13:26.305 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
14:13:26.318 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
14:13:26.327 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader
14:13:26.329 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist
14:13:26.329 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist
14:13:26.329 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
14:13:26.330 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
14:13:26.356 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.400 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class]
14:13:26.401 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests
14:13:26.464 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults.
14:13:26.464 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
14:13:26.476 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.481 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -&gt; true]], class annotated with @DirtiesContext [false] with mode [null].
14:13:26.482 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.482 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.497 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-06-03 14:13:26.641 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 19448 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-03 14:13:26.642 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default
2019-06-03 14:13:27.069 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-03 14:13:27.122 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 46ms. Found 3 repository interfaces.
2019-06-03 14:13:27.363 INFO 19448 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$78358982] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-03 14:13:27.491 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-06-03 14:13:27.630 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-06-03 14:13:27.703 INFO 19448 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2019-06-03 14:13:27.751 INFO 19448 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final}
2019-06-03 14:13:27.752 INFO 19448 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2019-06-03 14:13:27.858 INFO 19448 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-06-03 14:13:27.977 INFO 19448 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-03 14:13:28.656 INFO 19448 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@431ca4c0'
2019-06-03 14:13:28.659 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-03 14:13:29.437 INFO 19448 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-03 14:13:29.474 WARN 19448 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-03 14:13:29.680 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.178 seconds (JVM running for 3.836)
2019-06-03 14:13:29.697 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/3 下午 02:13:31</p>
</div>
</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Class edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Class edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt;
<a href="../packages/edu.prlab.tyler.iotgateway.gateway.html">edu.prlab.tyler.iotgateway.gateway</a> &gt; GatewayHttpApiTest</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">1</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.649s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Standard output</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Tests</h2>
<table>
<thead>
<tr>
<th>Test</th>
<th>Duration</th>
<th>Result</th>
</tr>
</thead>
<tr>
<td class="success">getPrivacyPolicyAndSetChoice</td>
<td class="success">0.649s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard output</h2>
<span class="code">
<pre>2019-06-03 14:13:29.860 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader
2019-06-03 14:13:29.860 INFO 19448 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}.
2019-06-03 14:13:29.862 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
2019-06-03 14:13:29.862 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@35f71a, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@1f565b02, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@2f8d0bfa, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@14426abb, org.springframework.test.context.support.DirtiesContextTestExecutionListener@3b60c20e, org.springframework.test.context.transaction.TransactionalTestExecutionListener@1643102b, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@51561bc2, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@5646a4e1, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@6b8b7c95, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@6547fb87, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4ae74e6, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@672cb93e]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-06-03 14:13:29.876 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 19448 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-03 14:13:29.877 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default
2019-06-03 14:13:29.974 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-03 14:13:29.982 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8ms. Found 3 repository interfaces.
2019-06-03 14:13:30.021 INFO 19448 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$78358982] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-03 14:13:30.068 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting...
2019-06-03 14:13:30.068 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed.
2019-06-03 14:13:30.097 INFO 19448 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2019-06-03 14:13:30.107 INFO 19448 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@431ca4c0'
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-03 14:13:30.449 INFO 19448 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-03 14:13:30.457 WARN 19448 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-03 14:13:30.612 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.749 seconds (JVM running for 4.767)
2019-06-03 14:13:30.613 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
2019-06-03 14:13:30.624 INFO 19448 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2019-06-03 14:13:30.625 INFO 19448 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2019-06-03 14:13:30.633 INFO 19448 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 8 ms
MockHttpServletRequest:
HTTP Method = POST
Request URI = /login
Parameters = {}
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;, Accept:&quot;application/json;charset=UTF-8&quot;]
Body = {&quot;account&quot;:&quot;testUser0&quot;,&quot;password&quot;:&quot;testUser0&quot;}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.UserController
Method = public org.springframework.http.ResponseEntity&lt;edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser&gt; edu.prlab.tyler.iotgateway.gateway.controllers.UserController.login(edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = {&quot;account&quot;:&quot;testUser0&quot;,&quot;password&quot;:&quot;testUser0&quot;}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = POST
Request URI = /device/a1252c49-4188-4e6d-a32e-66604c664fb8
Parameters = {}
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;, Accept:&quot;application/json;charset=UTF-8&quot;]
Body = {&quot;account&quot;:&quot;testUser0&quot;,&quot;password&quot;:&quot;testUser0&quot;}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;edu.prlab.tyler.iotgateway.cloud.pojo.device.Device&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.bindDeviceAndGateway(java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = {&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /device
Parameters = {}
Headers = [Accept:&quot;application/json;charset=UTF-8&quot;]
Body = &lt;no character encoding set&gt;
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;java.lang.Iterable&lt;edu.prlab.tyler.iotgateway.cloud.pojo.device.Device&gt;&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readDevices()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = [{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;}]
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /privacy/a1252c49-4188-4e6d-a32e-66604c664fb8/test
Parameters = {}
Headers = [Accept:&quot;application/json;charset=UTF-8&quot;]
Body = &lt;no character encoding set&gt;
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyPolicyReportByDevice(java.lang.String,java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = {&quot;id&quot;:&quot;1&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳、血氧作為第三方之分析資料。&quot;,&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policies&quot;:[{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]},{&quot;id&quot;:&quot;2&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f48&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;血氧資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f89&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;血氧資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}],&quot;document&quot;:null,&quot;choices&quot;:{&quot;0&quot;:false,&quot;1&quot;:false}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = POST
Request URI = /choice
Parameters = {}
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;, Accept:&quot;application/json;charset=UTF-8&quot;]
Body = {&quot;id&quot;:0,&quot;privacyContent&quot;:{&quot;id&quot;:0,&quot;user&quot;:{&quot;id&quot;:0,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.setPrivacyChoice(edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = {&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-03T14:13:31.205&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /privacy/a1252c49-4188-4e6d-a32e-66604c664fb8/test
Parameters = {}
Headers = [Accept:&quot;application/json;charset=UTF-8&quot;]
Body = &lt;no character encoding set&gt;
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyPolicyReportByDevice(java.lang.String,java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = {&quot;id&quot;:&quot;1&quot;,&quot;version&quot;:&quot;1.0&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳、血氧作為第三方之分析資料。&quot;,&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policies&quot;:[{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]},{&quot;id&quot;:&quot;2&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f48&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;血氧資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f89&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者血氧作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;血氧資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}],&quot;document&quot;:null,&quot;choices&quot;:{&quot;0&quot;:true,&quot;1&quot;:false}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /choice/test
Parameters = {}
Headers = [Accept:&quot;application/json;charset=UTF-8&quot;]
Body = &lt;no character encoding set&gt;
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity&lt;java.lang.Iterable&lt;edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse&gt;&gt; edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyChoiceRecordsByUser(java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:&quot;application/json;charset=UTF-8&quot;]
Content type = application/json;charset=UTF-8
Body = [{&quot;id&quot;:1,&quot;localDateTime&quot;:&quot;2019-06-03T14:13:31.205&quot;,&quot;privacyChoice&quot;:{&quot;id&quot;:1,&quot;privacyContent&quot;:{&quot;id&quot;:1,&quot;user&quot;:{&quot;id&quot;:1,&quot;account&quot;:&quot;test&quot;,&quot;password&quot;:null},&quot;device&quot;:{&quot;udn&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fb8&quot;,&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;type&quot;:&quot;Sensor&quot;,&quot;manufacturer&quot;:{&quot;name&quot;:&quot;Maxim Integrated&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en.html&quot;,&quot;serialNumber&quot;:&quot;3176927193&quot;},&quot;model&quot;:{&quot;name&quot;:&quot;心跳血氧機&quot;,&quot;url&quot;:&quot;https://www.maximintegrated.com/en/products/sensors/MAX30100.html&quot;,&quot;description&quot;:&quot;本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況&quot;},&quot;upc&quot;:&quot;B00HXXO332&quot;,&quot;location&quot;:&quot;25.013068, 121.541651&quot;,&quot;icons&quot;:[],&quot;status&quot;:&quot;Disconnected&quot;},&quot;policy&quot;:{&quot;id&quot;:&quot;1&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;,&quot;collector&quot;:{&quot;name&quot;:&quot;AirRadio&quot;,&quot;phone&quot;:&quot;0987654177&quot;,&quot;email&quot;:&quot;[email protected]&quot;},&quot;dispute&quot;:{&quot;relatedOrganization&quot;:&quot;地方法院&quot;,&quot;type&quot;:&quot;LAW&quot;},&quot;access&quot;:&quot;NON_IDENT&quot;,&quot;remedies&quot;:[{&quot;type&quot;:&quot;LAW&quot;}],&quot;statements&quot;:[{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664fl4&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;},{&quot;consequence&quot;:&quot;a1252c49-4188-4e6d-a32e-66604c664f45&quot;,&quot;purposes&quot;:[{&quot;type&quot;:&quot;PSEUDO_ANALYSIS&quot;,&quot;description&quot;:&quot;本APP會蒐集使用者心跳作為第三方之分析資料。&quot;}],&quot;data&quot;:[{&quot;type&quot;:&quot;OTHER_CATEGORY&quot;,&quot;description&quot;:&quot;心跳健康資料&quot;}],&quot;recipients&quot;:[{&quot;entity&quot;:&quot;AirRadio&quot;,&quot;type&quot;:&quot;OURS&quot;}],&quot;retention&quot;:&quot;STATED_PURPOSE&quot;}]}},&quot;accepted&quot;:true,&quot;isAccepted&quot;:true}}]
Forwarded URL = null
Redirected URL = null
Cookies = []
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/3 下午 02:13:31</p>
</div>
</div>
</body>
</html>
body {
margin: 0;
padding: 0;
font-family: sans-serif;
font-size: 12pt;
}
body, a, a:visited {
color: #303030;
}
#content {
padding-left: 50px;
padding-right: 50px;
padding-top: 30px;
padding-bottom: 30px;
}
#content h1 {
font-size: 160%;
margin-bottom: 10px;
}
#footer {
margin-top: 100px;
font-size: 80%;
white-space: nowrap;
}
#footer, #footer a {
color: #a0a0a0;
}
#line-wrapping-toggle {
vertical-align: middle;
}
#label-for-line-wrapping-toggle {
vertical-align: middle;
}
ul {
margin-left: 0;
}
h1, h2, h3 {
white-space: nowrap;
}
h2 {
font-size: 120%;
}
ul.tabLinks {
padding-left: 0;
padding-top: 10px;
padding-bottom: 10px;
overflow: auto;
min-width: 800px;
width: auto !important;
width: 800px;
}
ul.tabLinks li {
float: left;
height: 100%;
list-style: none;
padding-left: 10px;
padding-right: 10px;
padding-top: 5px;
padding-bottom: 5px;
margin-bottom: 0;
-moz-border-radius: 7px;
border-radius: 7px;
margin-right: 25px;
border: solid 1px #d4d4d4;
background-color: #f0f0f0;
}
ul.tabLinks li:hover {
background-color: #fafafa;
}
ul.tabLinks li.selected {
background-color: #c5f0f5;
border-color: #c5f0f5;
}
ul.tabLinks a {
font-size: 120%;
display: block;
outline: none;
text-decoration: none;
margin: 0;
padding: 0;
}
ul.tabLinks li h2 {
margin: 0;
padding: 0;
}
div.tab {
}
div.selected {
display: block;
}
div.deselected {
display: none;
}
div.tab table {
min-width: 350px;
width: auto !important;
width: 350px;
border-collapse: collapse;
}
div.tab th, div.tab table {
border-bottom: solid #d0d0d0 1px;
}
div.tab th {
text-align: left;
white-space: nowrap;
padding-left: 6em;
}
div.tab th:first-child {
padding-left: 0;
}
div.tab td {
white-space: nowrap;
padding-left: 6em;
padding-top: 5px;
padding-bottom: 5px;
}
div.tab td:first-child {
padding-left: 0;
}
div.tab td.numeric, div.tab th.numeric {
text-align: right;
}
span.code {
display: inline-block;
margin-top: 0em;
margin-bottom: 1em;
}
span.code pre {
font-size: 11pt;
padding-top: 10px;
padding-bottom: 10px;
padding-left: 10px;
padding-right: 10px;
margin: 0;
background-color: #f7f7f7;
border: solid 1px #d0d0d0;
min-width: 700px;
width: auto !important;
width: 700px;
}
span.wrapped pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: break-all;
}
label.hidden {
display: none;
}
\ No newline at end of file
#summary {
margin-top: 30px;
margin-bottom: 40px;
}
#summary table {
border-collapse: collapse;
}
#summary td {
vertical-align: top;
}
.breadcrumbs, .breadcrumbs a {
color: #606060;
}
.infoBox {
width: 110px;
padding-top: 15px;
padding-bottom: 15px;
text-align: center;
}
.infoBox p {
margin: 0;
}
.counter, .percent {
font-size: 120%;
font-weight: bold;
margin-bottom: 8px;
}
#duration {
width: 125px;
}
#successRate, .summaryGroup {
border: solid 2px #d0d0d0;
-moz-border-radius: 10px;
border-radius: 10px;
}
#successRate {
width: 140px;
margin-left: 35px;
}
#successRate .percent {
font-size: 180%;
}
.success, .success a {
color: #008000;
}
div.success, #successRate.success {
background-color: #bbd9bb;
border-color: #008000;
}
.failures, .failures a {
color: #b60808;
}
.skipped, .skipped a {
color: #c09853;
}
div.failures, #successRate.failures {
background-color: #ecdada;
border-color: #b60808;
}
ul.linkList {
padding-left: 0;
}
ul.linkList li {
list-style: none;
margin-bottom: 5px;
}
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Test Summary</title>
<link href="css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<script src="js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Test Summary</h1>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">2</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.680s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Packages</a>
</li>
<li>
<a href="#tab1">Classes</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Packages</h2>
<table>
<thead>
<tr>
<th>Package</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tbody>
<tr>
<td class="success">
<a href="packages/edu.prlab.tyler.iotgateway.gateway.html">edu.prlab.tyler.iotgateway.gateway</a>
</td>
<td>2</td>
<td>0</td>
<td>0</td>
<td>0.680s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
</div>
<div id="tab1" class="tab">
<h2>Classes</h2>
<table>
<thead>
<tr>
<th>Class</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thead>
<tbody>
<tr>
<td class="success"/>
<a href="classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html">edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests</a>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.031s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success"/>
<a href="classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html">edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest</a>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.649s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/3 下午 02:13:31</p>
</div>
</div>
</body>
</html>
(function (window, document) {
"use strict";
var tabs = {};
function changeElementClass(element, classValue) {
if (element.getAttribute("className")) {
element.setAttribute("className", classValue);
} else {
element.setAttribute("class", classValue);
}
}
function getClassAttribute(element) {
if (element.getAttribute("className")) {
return element.getAttribute("className");
} else {
return element.getAttribute("class");
}
}
function addClass(element, classValue) {
changeElementClass(element, getClassAttribute(element) + " " + classValue);
}
function removeClass(element, classValue) {
changeElementClass(element, getClassAttribute(element).replace(classValue, ""));
}
function initTabs() {
var container = document.getElementById("tabs");
tabs.tabs = findTabs(container);
tabs.titles = findTitles(tabs.tabs);
tabs.headers = findHeaders(container);
tabs.select = select;
tabs.deselectAll = deselectAll;
tabs.select(0);
return true;
}
function getCheckBox() {
return document.getElementById("line-wrapping-toggle");
}
function getLabelForCheckBox() {
return document.getElementById("label-for-line-wrapping-toggle");
}
function findCodeBlocks() {
var spans = document.getElementById("tabs").getElementsByTagName("span");
var codeBlocks = [];
for (var i = 0; i < spans.length; ++i) {
if (spans[i].className.indexOf("code") >= 0) {
codeBlocks.push(spans[i]);
}
}
return codeBlocks;
}
function forAllCodeBlocks(operation) {
var codeBlocks = findCodeBlocks();
for (var i = 0; i < codeBlocks.length; ++i) {
operation(codeBlocks[i], "wrapped");
}
}
function toggleLineWrapping() {
var checkBox = getCheckBox();
if (checkBox.checked) {
forAllCodeBlocks(addClass);
} else {
forAllCodeBlocks(removeClass);
}
}
function initControls() {
if (findCodeBlocks().length > 0) {
var checkBox = getCheckBox();
var label = getLabelForCheckBox();
checkBox.onclick = toggleLineWrapping;
checkBox.checked = false;
removeClass(label, "hidden");
}
}
function switchTab() {
var id = this.id.substr(1);
for (var i = 0; i < tabs.tabs.length; i++) {
if (tabs.tabs[i].id === id) {
tabs.select(i);
break;
}
}
return false;
}
function select(i) {
this.deselectAll();
changeElementClass(this.tabs[i], "tab selected");
changeElementClass(this.headers[i], "selected");
while (this.headers[i].firstChild) {
this.headers[i].removeChild(this.headers[i].firstChild);
}
var h2 = document.createElement("H2");
h2.appendChild(document.createTextNode(this.titles[i]));
this.headers[i].appendChild(h2);
}
function deselectAll() {
for (var i = 0; i < this.tabs.length; i++) {
changeElementClass(this.tabs[i], "tab deselected");
changeElementClass(this.headers[i], "deselected");
while (this.headers[i].firstChild) {
this.headers[i].removeChild(this.headers[i].firstChild);
}
var a = document.createElement("A");
a.setAttribute("id", "ltab" + i);
a.setAttribute("href", "#tab" + i);
a.onclick = switchTab;
a.appendChild(document.createTextNode(this.titles[i]));
this.headers[i].appendChild(a);
}
}
function findTabs(container) {
return findChildElements(container, "DIV", "tab");
}
function findHeaders(container) {
var owner = findChildElements(container, "UL", "tabLinks");
return findChildElements(owner[0], "LI", null);
}
function findTitles(tabs) {
var titles = [];
for (var i = 0; i < tabs.length; i++) {
var tab = tabs[i];
var header = findChildElements(tab, "H2", null)[0];
header.parentNode.removeChild(header);
if (header.innerText) {
titles.push(header.innerText);
} else {
titles.push(header.textContent);
}
}
return titles;
}
function findChildElements(container, name, targetClass) {
var elements = [];
var children = container.childNodes;
for (var i = 0; i < children.length; i++) {
var child = children.item(i);
if (child.nodeType === 1 && child.nodeName === name) {
if (targetClass && child.className.indexOf(targetClass) < 0) {
continue;
}
elements.push(child);
}
}
return elements;
}
// Entry point.
window.onload = function() {
initTabs();
initControls();
};
} (window, window.document));
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
<title>Test results - Package edu.prlab.tyler.iotgateway.gateway</title>
<link href="../css/base-style.css" rel="stylesheet" type="text/css"/>
<link href="../css/style.css" rel="stylesheet" type="text/css"/>
<script src="../js/report.js" type="text/javascript"></script>
</head>
<body>
<div id="content">
<h1>Package edu.prlab.tyler.iotgateway.gateway</h1>
<div class="breadcrumbs">
<a href="../index.html">all</a> &gt; edu.prlab.tyler.iotgateway.gateway</div>
<div id="summary">
<table>
<tr>
<td>
<div class="summaryGroup">
<table>
<tr>
<td>
<div class="infoBox" id="tests">
<div class="counter">2</div>
<p>tests</p>
</div>
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
<td>
<div class="infoBox" id="ignored">
<div class="counter">0</div>
<p>ignored</p>
</div>
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.680s</div>
<p>duration</p>
</div>
</td>
</tr>
</table>
</div>
</td>
<td>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
</tr>
</table>
</div>
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Classes</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Classes</h2>
<table>
<thread>
<tr>
<th>Class</th>
<th>Tests</th>
<th>Failures</th>
<th>Ignored</th>
<th>Duration</th>
<th>Success rate</th>
</tr>
</thread>
<tr>
<td class="success">
<a href="../classes/edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests.html">GatewayApplicationTests</a>
</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.031s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="success">
<a href="../classes/edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest.html">GatewayHttpApiTest</a>
</td>
<td>1</td>
<td>0</td>
<td>0</td>
<td>0.649s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
</div>
<div id="footer">
<p>
<div>
<label class="hidden" id="label-for-line-wrapping-toggle" for="line-wrapping-toggle">Wrap lines
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/3 下午 02:13:31</p>
</div>
</div>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-03T06:13:29" hostname="DESKTOP-1ADCP8A" time="0.031">
<properties/>
<testcase name="contextLoads" classname="edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests" time="0.031"/>
<system-out><![CDATA[14:13:26.293 [Test worker] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.299 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
14:13:26.305 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
14:13:26.318 [Test worker] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
14:13:26.327 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests], using SpringBootContextLoader
14:13:26.329 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTests-context.xml] does not exist
14:13:26.329 [Test worker] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: class path resource [edu/prlab/tyler/iotgateway/gateway/GatewayApplicationTestsContext.groovy] does not exist
14:13:26.329 [Test worker] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: no resource found for suffixes {-context.xml, Context.groovy}.
14:13:26.330 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: GatewayApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
14:13:26.356 [Test worker] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.400 [Test worker] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\SpringBoot\iotgateway\gateway\build\classes\java\main\edu\prlab\tyler\iotgateway\gateway\GatewayApplication.class]
14:13:26.401 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration edu.prlab.tyler.iotgateway.gateway.GatewayApplication for test class edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests
14:13:26.464 [Test worker] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]: using defaults.
14:13:26.464 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
14:13:26.476 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@1b8667a5, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@6a9b7e53, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7e595118, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@4a5bfbb6, org.springframework.test.context.support.DirtiesContextTestExecutionListener@62c81617, org.springframework.test.context.transaction.TransactionalTestExecutionListener@531085fb, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@6775cf10, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@72e61e03, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@503cd6e6, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@7d4be47, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4e90ece2, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@c44e535]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.478 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.481 [Test worker] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@26c1b343 testClass = GatewayApplicationTests, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@7604582e testClass = GatewayApplicationTests, locations = '{}', classes = '{class edu.prlab.tyler.iotgateway.gateway.GatewayApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@5dec0e8b, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@5bb44255, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@140c0cee, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@1eb32443], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].
14:13:26.482 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.482 [Test worker] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [edu.prlab.tyler.iotgateway.gateway.GatewayApplicationTests]
14:13:26.497 [Test worker] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-06-03 14:13:26.641 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Starting GatewayApplicationTests on DESKTOP-1ADCP8A with PID 19448 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-03 14:13:26.642 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : No active profile set, falling back to default profiles: default
2019-06-03 14:13:27.069 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-03 14:13:27.122 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 46ms. Found 3 repository interfaces.
2019-06-03 14:13:27.363 INFO 19448 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$78358982] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-03 14:13:27.491 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-06-03 14:13:27.630 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-06-03 14:13:27.703 INFO 19448 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2019-06-03 14:13:27.751 INFO 19448 --- [ Test worker] org.hibernate.Version : HHH000412: Hibernate Core {5.3.9.Final}
2019-06-03 14:13:27.752 INFO 19448 --- [ Test worker] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
2019-06-03 14:13:27.858 INFO 19448 --- [ Test worker] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-06-03 14:13:27.977 INFO 19448 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-03 14:13:28.656 INFO 19448 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@431ca4c0'
2019-06-03 14:13:28.659 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-03 14:13:29.437 INFO 19448 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-03 14:13:29.474 WARN 19448 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-03 14:13:29.680 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayApplicationTests : Started GatewayApplicationTests in 3.178 seconds (JVM running for 3.836)
2019-06-03 14:13:29.697 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-03T06:13:30" hostname="DESKTOP-1ADCP8A" time="0.649">
<properties/>
<testcase name="getPrivacyPolicyAndSetChoice" classname="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" time="0.649"/>
<system-out><![CDATA[2019-06-03 14:13:29.860 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest], using SpringBootContextLoader
2019-06-03 14:13:29.860 INFO 19448 --- [ Test worker] o.s.t.c.support.AbstractContextLoader : Could not detect default resource locations for test class [edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest]: no resource found for suffixes {-context.xml, Context.groovy}.
2019-06-03 14:13:29.862 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener]
2019-06-03 14:13:29.862 INFO 19448 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@35f71a, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@1f565b02, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@2f8d0bfa, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@14426abb, org.springframework.test.context.support.DirtiesContextTestExecutionListener@3b60c20e, org.springframework.test.context.transaction.TransactionalTestExecutionListener@1643102b, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@51561bc2, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@5646a4e1, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@6b8b7c95, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@6547fb87, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4ae74e6, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@672cb93e]
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.4.RELEASE)
2019-06-03 14:13:29.876 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 19448 (started by Tyler in D:\SpringBoot\iotgateway\gateway)
2019-06-03 14:13:29.877 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : No active profile set, falling back to default profiles: default
2019-06-03 14:13:29.974 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-06-03 14:13:29.982 INFO 19448 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 8ms. Found 3 repository interfaces.
2019-06-03 14:13:30.021 INFO 19448 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$78358982] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-06-03 14:13:30.068 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting...
2019-06-03 14:13:30.068 INFO 19448 --- [ Test worker] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed.
2019-06-03 14:13:30.097 INFO 19448 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
name: default
...]
2019-06-03 14:13:30.107 INFO 19448 --- [ Test worker] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@431ca4c0'
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-06-03 14:13:30.449 INFO 19448 --- [ Test worker] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-06-03 14:13:30.457 WARN 19448 --- [ Test worker] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-06-03 14:13:30.612 INFO 19448 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.749 seconds (JVM running for 4.767)
2019-06-03 14:13:30.613 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory
2019-06-03 14:13:30.624 INFO 19448 --- [ Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
2019-06-03 14:13:30.625 INFO 19448 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet ''
2019-06-03 14:13:30.633 INFO 19448 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 8 ms
MockHttpServletRequest:
HTTP Method = POST
Request URI = /login
Parameters = {}
Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/json;charset=UTF-8"]
Body = {"account":"testUser0","password":"testUser0"}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.UserController
Method = public org.springframework.http.ResponseEntity<edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser> edu.prlab.tyler.iotgateway.gateway.controllers.UserController.login(edu.prlab.tyler.iotgateway.gateway.pojo.auth.SensitiveUser)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"account":"testUser0","password":"testUser0"}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = POST
Request URI = /device/a1252c49-4188-4e6d-a32e-66604c664fb8
Parameters = {}
Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/json;charset=UTF-8"]
Body = {"account":"testUser0","password":"testUser0"}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<edu.prlab.tyler.iotgateway.cloud.pojo.device.Device> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.bindDeviceAndGateway(java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /device
Parameters = {}
Headers = [Accept:"application/json;charset=UTF-8"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<java.lang.Iterable<edu.prlab.tyler.iotgateway.cloud.pojo.device.Device>> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readDevices()
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = [{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"}]
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /privacy/a1252c49-4188-4e6d-a32e-66604c664fb8/test
Parameters = {}
Headers = [Accept:"application/json;charset=UTF-8"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyPolicyReportByDevice(java.lang.String,java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"id":"1","version":"1.0","description":"本APP會蒐集使用者心跳、血氧作為第三方之分析資料。","device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policies":[{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]},{"id":"2","description":"本APP會蒐集使用者血氧作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f48","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者血氧作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"血氧資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f89","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者血氧作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"血氧資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}],"document":null,"choices":{"0":false,"1":false}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = POST
Request URI = /choice
Parameters = {}
Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/json;charset=UTF-8"]
Body = {"id":0,"privacyContent":{"id":0,"user":{"id":0,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.setPrivacyChoice(edu.prlab.tyler.iotgateway.cloud.pojo.privacy.PrivacyChoice)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"id":1,"localDateTime":"2019-06-03T14:13:31.205","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /privacy/a1252c49-4188-4e6d-a32e-66604c664fb8/test
Parameters = {}
Headers = [Accept:"application/json;charset=UTF-8"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<edu.prlab.tyler.iotgateway.gateway.model.PrivacyPolicyReportResponse> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyPolicyReportByDevice(java.lang.String,java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = {"id":"1","version":"1.0","description":"本APP會蒐集使用者心跳、血氧作為第三方之分析資料。","device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policies":[{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]},{"id":"2","description":"本APP會蒐集使用者血氧作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f48","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者血氧作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"血氧資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f89","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者血氧作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"血氧資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}],"document":null,"choices":{"0":true,"1":false}}
Forwarded URL = null
Redirected URL = null
Cookies = []
MockHttpServletRequest:
HTTP Method = GET
Request URI = /choice/test
Parameters = {}
Headers = [Accept:"application/json;charset=UTF-8"]
Body = <no character encoding set>
Session Attrs = {}
Handler:
Type = edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController
Method = public org.springframework.http.ResponseEntity<java.lang.Iterable<edu.prlab.tyler.iotgateway.gateway.model.PrivacyChoiceResponse>> edu.prlab.tyler.iotgateway.gateway.controllers.GatewayController.readPrivacyChoiceRecordsByUser(java.lang.String)
Async:
Async started = false
Async result = null
Resolved Exception:
Type = null
ModelAndView:
View name = null
View = null
Model = null
FlashMap:
Attributes = null
MockHttpServletResponse:
Status = 200
Error message = null
Headers = [Content-Type:"application/json;charset=UTF-8"]
Content type = application/json;charset=UTF-8
Body = [{"id":1,"localDateTime":"2019-06-03T14:13:31.205","privacyChoice":{"id":1,"privacyContent":{"id":1,"user":{"id":1,"account":"test","password":null},"device":{"udn":"a1252c49-4188-4e6d-a32e-66604c664fb8","name":"心跳血氧機","type":"Sensor","manufacturer":{"name":"Maxim Integrated","url":"https://www.maximintegrated.com/en.html","serialNumber":"3176927193"},"model":{"name":"心跳血氧機","url":"https://www.maximintegrated.com/en/products/sensors/MAX30100.html","description":"本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況"},"upc":"B00HXXO332","location":"25.013068, 121.541651","icons":[],"status":"Disconnected"},"policy":{"id":"1","description":"本APP會蒐集使用者心跳作為第三方之分析資料。","collector":{"name":"AirRadio","phone":"0987654177","email":"[email protected]"},"dispute":{"relatedOrganization":"地方法院","type":"LAW"},"access":"NON_IDENT","remedies":[{"type":"LAW"}],"statements":[{"consequence":"a1252c49-4188-4e6d-a32e-66604c664fl4","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"},{"consequence":"a1252c49-4188-4e6d-a32e-66604c664f45","purposes":[{"type":"PSEUDO_ANALYSIS","description":"本APP會蒐集使用者心跳作為第三方之分析資料。"}],"data":[{"type":"OTHER_CATEGORY","description":"心跳健康資料"}],"recipients":[{"entity":"AirRadio","type":"OURS"}],"retention":"STATED_PURPOSE"}]}},"accepted":true,"isAccepted":true}}]
Forwarded URL = null
Redirected URL = null
Cookies = []
]]></system-out>
<system-err><![CDATA[]]></system-err>
</testsuite>
Manifest-Version: 1.0
Start-Class: edu.prlab.tyler.iotgateway.gateway.GatewayApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Spring-Boot-Version: 2.1.4.RELEASE
Main-Class: org.springframework.boot.loader.PropertiesLauncher
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment