Quorum Contract
Showing
No preview for this file type
No preview for this file type
... | @@ -39,6 +39,7 @@ public class DefaultData implements ApplicationRunner { | ... | @@ -39,6 +39,7 @@ public class DefaultData implements ApplicationRunner { |
this.privacyPolicyReportService = privacyPolicyReportService; | this.privacyPolicyReportService = privacyPolicyReportService; | ||
this.documentService = documentService; | this.documentService = documentService; | ||
} | } | ||
@Value("classpath:document/心跳血氧機檢測報告.pdf") | @Value("classpath:document/心跳血氧機檢測報告.pdf") | ||
Resource oxygenResource; | Resource oxygenResource; | ||
... | @@ -486,12 +487,608 @@ public class DefaultData implements ApplicationRunner { | ... | @@ -486,12 +487,608 @@ public class DefaultData implements ApplicationRunner { |
.build(); | .build(); | ||
privacyPolicyReportService.add(gasPrivacyPolicyReport); | privacyPolicyReportService.add(gasPrivacyPolicyReport); | ||
//================================================================================== | |||
//心跳感測裝置 | |||
Device heartbeatDevice = Device.builder() | |||
.udn("2udwl107-4128-4e6d-a32e-3xg04i62rukl") | |||
.name("心跳感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("Maxim Integrated") | |||
.serialNumber("3176927193") | |||
.url("https://www.maximintegrated.com/en.html") | |||
.build()) | |||
.model(Model.builder() | |||
.name("心跳感測裝置") | |||
.description("本設備檢測人體內產生的小信號,例如心臟產生的電信號,此信號通常經過調理後傳輸至微控制器,進行儲存、計算或顯示在健康監測設備上。本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況") | |||
.url("https://www.maximintegrated.com/en/products/sensors/MAX30100.html") | |||
.build()) | |||
.upc("B00HXXO332") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(heartbeatDevice); | |||
PrivacyPolicy heartbeatPrivacyPolicy = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-015370fe0a3e") | |||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW) | |||
.build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fl4") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("心跳健康資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build(), Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f45") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("心跳健康資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build() | |||
)) | |||
.build(); | |||
document = resourceToMultipartFile(oxygenResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport heartBeatPolicyReport = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者心跳作為第三方之分析資料。") | |||
.device(heartbeatDevice) | |||
.policies(asList(heartbeatPrivacyPolicy)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(heartBeatPolicyReport); | |||
//血氧感測裝置 | |||
Device oxygen2Device = Device.builder() | |||
.udn("z5fx8c6b-4128-4e6d-a32e-tyribifgsne9") | |||
.name("血氧感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("Maxim Integrated") | |||
.serialNumber("3176927193") | |||
.url("https://www.maximintegrated.com/en.html") | |||
.build()) | |||
.model(Model.builder() | |||
.name("血氧感測裝置") | |||
.description("本設備檢測人體內血液中氧濃度含量," + | |||
"例如能監測動脈中攜帶氧的血紅蛋白與不攜帶氧的血紅蛋白的比例," + | |||
"本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況") | |||
.url("https://www.maximintegrated.com/en/products/sensors/MAX30100.html") | |||
.build()) | |||
.upc("B00HXXO332") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(oxygen2Device); | |||
PrivacyPolicy oxygen2PrivacyPolicy = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e") | |||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW) | |||
.build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f48") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("血氧資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build(), Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c664f89") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者血氧作為第三方之分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("血氧資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build() | |||
)).build(); | |||
document = resourceToMultipartFile(oxygenResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport oxygen2PrivacyPolicyReport = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本設備檢測人體內血液中氧濃度含量," + | |||
"例如能監測動脈中攜帶氧的血紅蛋白與不攜帶氧的血紅蛋白的比例," + | |||
"本設備測量數據用於健身監測,或者被醫療保健專家用於判定被觀察病人的總體健康狀況") | |||
.device(oxygen2Device) | |||
.policies(asList(oxygen2PrivacyPolicy)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(oxygen2PrivacyPolicyReport); | |||
//PM2.5粉塵感測裝置 | |||
Device dustDevice2 = Device.builder() | |||
.udn("cx9lrnuy-6834-4e6a-9305-s3zlkheeplcc") | |||
.name("PM2.5粉塵感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("PM2.5粉塵感測裝置") | |||
.description("最新推出G7,全稱 PMS7003,厚度僅12mm,專為便攜式檢測產品設計。" + | |||
"可兼容G1和G5,更小更薄,進出氣口在同一側,全金屬外殼。" + | |||
"PM1.0、PM2.5、PM10濃度以及顆粒物個數等12個參數輸出。") | |||
.url("https://www.taiwaniot.com.tw/product/%E6%94%80%E8%97%A4-g7-pms7003-pm1-0-pm2-5-pm10-%E7%B2%89%E5%A1%B5%E6%BF%83%E5%BA%A6%E6%84%9F%E6%B8%AC%E5%99%A8/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(dustDevice2); | |||
PrivacyPolicy dustPrivacyPolicy2 = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014870fe0a1j") | |||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c66s1r9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("空氣品質資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build())) | |||
.build(); | |||
document = resourceToMultipartFile(dustResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport dustPrivacyPolicyReport2 = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭空氣品質作為第三方資料之地區環境分析資料。") | |||
.device(dustDevice2) | |||
.policies(asList(dustPrivacyPolicy2)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(dustPrivacyPolicyReport2); | |||
//紫外線感測裝置 | |||
Device sensorDevice2 = Device.builder() | |||
.udn("72ht8ggp-6834-4e6a-9305-7hq4a9pccsfd") | |||
.name("紫外線感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("UVM-30A紫外線傳感器") | |||
.description("專為需要高可靠性和精確性測量紫外線指數(UVI)的場合所設計,且適合測量太陽光紫外線強度總量,適用於小尺寸裝置、行動電話等便攜產品。") | |||
.url("https://www.taiwaniot.com.tw/product/uvm-30a%E7%B4%AB%E5%A4%96%E7%B7%9A%E5%82%B3%E6%84%9F%E5%99%A8%E6%A8%A1%E7%B5%84/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(sensorDevice2); | |||
PrivacyPolicy sensorPrivacyPolicy2 = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014870fe0a3e") | |||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c664fb9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("紫外線強度資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build())) | |||
.build(); | |||
document = resourceToMultipartFile(sensorResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport sensorPrivacyPolicyReport2 = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭紫外線強度作為第三方資料之地區環境分析資料。") | |||
.device(sensorDevice2) | |||
.policies(asList(sensorPrivacyPolicy2)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(sensorPrivacyPolicyReport2); | |||
//濕度感測裝置 | |||
Device humidityDevice = Device.builder() | |||
.udn("40ceb1e7-6834-4e6a-9305-57348as38asc") | |||
.name("濕度感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("濕度感測裝置") | |||
.description("濕度感測器是一款含有已校準數位信號輸出的濕度感測器," + | |||
"它應用專用的數位模組採集技術和濕度傳感技術,來確保產品具有極高的可靠性與卓越的長期穩定性") | |||
.url("https://www.taiwaniot.com.tw/product/dht22-%E6%BA%AB%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BA%AB%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-dht22/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(humidityDevice); | |||
PrivacyPolicy humidityPrivacyPolicy = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014870fe00e1") | |||
.description("本APP會蒐集使用者周遭濕度作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭濕度作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("濕度資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build() | |||
)).build(); | |||
document = resourceToMultipartFile(tempResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport humidityPrivacyPolicyReport = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭周遭濕度作為第三方資料之地區環境分析資料。") | |||
.device(humidityDevice) | |||
.policies(asList(humidityPrivacyPolicy)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(humidityPrivacyPolicyReport); | |||
//溫度感測裝置 | |||
Device temp2Device = Device.builder() | |||
.udn("knqxzdmu-6834-4e6a-9305-spyp3gvix2d4") | |||
.name("溫度感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("溫度感測裝置") | |||
.description("DHT22溫濕度感測器是一款含有已校準數位信號輸出的溫濕度複合感測器," + | |||
"它應用專用的數位模組採集技術和溫濕度傳感技術,來確保產品具有極高的可靠性與卓越的長期穩定性") | |||
.url("https://www.taiwaniot.com.tw/product/dht22-%E6%BA%AB%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-%E6%BA%AB%E6%BF%95%E5%BA%A6%E6%A8%A1%E7%B5%84-dht22/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(temp2Device); | |||
PrivacyPolicy tempPrivacyPolicy2 = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014870fe00e1") | |||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭溫度作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("溫度資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build() | |||
)).build(); | |||
document = resourceToMultipartFile(tempResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport tempPrivacyPolicyReport2 = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭周遭溫度作為第三方資料之地區環境分析資料。") | |||
.device(temp2Device) | |||
.policies(asList(tempPrivacyPolicy2)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(tempPrivacyPolicyReport2); | |||
//溫室氣體(甲烷)裝置 | |||
Device gas2Device = Device.builder() | |||
.udn("iatm4k4x-6834-4e6a-9305-x4sqjb9wkir5") | |||
.name("溫室氣體(甲烷)裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("溫室氣體(甲烷)裝置") | |||
.description("MQ-4氣體感測器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫 (SnO2)。" + | |||
"MQ-4氣體感測器對甲烷的靈敏度高,是一款適合多種應用的低成本感測器。") | |||
.url("https://www.taiwaniot.com.tw/product/mq-4-ch4-%E5%A4%A9%E7%84%B6%E6%B0%A3%E3%80%81%E7%94%B2%E7%83%B7%E6%84%9F%E6%B8%AC%E5%99%A8%E6%A8%A1%E7%B5%84/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(gas2Device); | |||
PrivacyPolicy gasPrivacyPolicy2 = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014642fe00e1") | |||
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭氣體作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("氣體資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build())) | |||
.build(); | |||
document = resourceToMultipartFile(gasResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport gasPrivacyPolicyReport2 = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭周遭氣體作為第三方資料之地區環境分析資料。") | |||
.device(gas2Device) | |||
.policies(asList(gasPrivacyPolicy2)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(gasPrivacyPolicyReport2); | |||
//天然氣感測裝置 | |||
Device gas3Device = Device.builder() | |||
.udn("3fvrenhl-6834-4e6a-9305-p7cujv6kfp7v") | |||
.name("天然氣感測裝置") | |||
.type(Device.Type.Sensor) | |||
.manufacturer(Manufacturer.builder() | |||
.name("台灣物聯科技") | |||
.serialNumber("6307683948") | |||
.url("https://www.taiwaniot.com.tw/") | |||
.build()) | |||
.model(Model.builder() | |||
.name("天然氣感測裝置") | |||
.description("MQ-4氣體感測器所使用的氣敏材料是在清潔空氣中電導率較低的二氧化錫 (SnO2)。" + | |||
"此感測器可檢測多種可燃性氣體,特別是天然氣,是一款適合多種應用的低成本感測器。") | |||
.url("https://www.taiwaniot.com.tw/product/mq-4-ch4-%E5%A4%A9%E7%84%B6%E6%B0%A3%E3%80%81%E7%94%B2%E7%83%B7%E6%84%9F%E6%B8%AC%E5%99%A8%E6%A8%A1%E7%B5%84/") | |||
.build()) | |||
.upc("B0744D6C8X") | |||
.location("25.013068, 121.541651") | |||
.status(Device.Status.Disconnected) | |||
.build(); | |||
deviceService.add(gas3Device); | |||
PrivacyPolicy gasPrivacyPolicy3 = PrivacyPolicy.builder() | |||
.id("abe5ca7b-780e-4857-87e6-014642fe00e1") | |||
.description("本APP會蒐集使用者周遭天然氣作為第三方資料之地區環境分析資料。") | |||
.collector(Collector.builder() | |||
.name("AirRadio") | |||
.email("[email protected]") | |||
.phone("0987654177") | |||
.build()) | |||
.access(Access.NON_IDENT) | |||
.dispute(Dispute.builder() | |||
.relatedOrganization("地方法院") | |||
.type(Dispute.Type.LAW).build()) | |||
.remedies(asList(Remedy.builder() | |||
.type(Remedy.Type.LAW).build())) | |||
.statements(asList(Statement.builder() | |||
.consequence("a1252c49-4188-4e6d-a32e-66604c6621f9") | |||
.purposes(asList(Purpose.builder() | |||
.type(Purpose.Type.PSEUDO_ANALYSIS) | |||
.description("本APP會蒐集使用者周遭天然氣作為第三方資料之地區環境分析資料。") | |||
.build())) | |||
.data(asList(Datum.builder() | |||
.type(Datum.Type.OTHER_CATEGORY) | |||
.description("天然氣資料") | |||
.build())) | |||
.recipients(asList(Recipient.builder() | |||
.entity("AirRadio") | |||
.type(Recipient.Type.OURS) | |||
.build())) | |||
.retention(Retention.STATED_PURPOSE) | |||
.build())) | |||
.build(); | |||
document = resourceToMultipartFile(gasResource) | |||
.flatMap(documentService::add) | |||
.orElse(Document.builder().build()); | |||
PrivacyPolicyReport gasPrivacyPolicyReport3 = PrivacyPolicyReport.builder() | |||
.id("0cfb6be3-6f0f-4e63-85b8-e9c936707c0a") | |||
.version("1.0") | |||
.description("本APP會蒐集使用者周遭周遭天然氣作為第三方資料之地區環境分析資料。") | |||
.device(gas3Device) | |||
.policies(asList(gasPrivacyPolicy3)) | |||
.document(document) | |||
.build(); | |||
privacyPolicyReportService.add(gasPrivacyPolicyReport3); | |||
} | } | ||
private Optional<MockMultipartFile> resourceToMultipartFile(Resource resource) { | private Optional<MockMultipartFile> resourceToMultipartFile(Resource resource) { | ||
try { | try { | ||
InputStream file = resource.getInputStream(); | InputStream file = resource.getInputStream(); | ||
return Optional.of(new MockMultipartFile(resource.getFilename(), resource.getFilename(), | return Optional.ofNullable(new MockMultipartFile(resource.getFilename(), resource.getFilename(), | ||
"application/pdf", resource.getInputStream())); | "application/pdf", resource.getInputStream())); | ||
} catch (IOException e) { | } catch (IOException e) { | ||
e.printStackTrace(); | e.printStackTrace(); | ||
... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
... | @@ -41,7 +41,7 @@ | ... | @@ -41,7 +41,7 @@ |
</td> | </td> | ||
<td> | <td> | ||
<div class="infoBox" id="duration"> | <div class="infoBox" id="duration"> | ||
<div class="counter">0.649s</div> | <div class="counter">0.687s</div> | ||
<p>duration</p> | <p>duration</p> | ||
</div> | </div> | ||
</td> | </td> | ||
... | @@ -79,7 +79,7 @@ | ... | @@ -79,7 +79,7 @@ |
</thead> | </thead> | ||
<tr> | <tr> | ||
<td class="success">getPrivacyPolicyAndSetChoice</td> | <td class="success">getPrivacyPolicyAndSetChoice</td> | ||
<td class="success">0.649s</td> | <td class="success">0.687s</td> | ||
<td class="success">passed</td> | <td class="success">passed</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
... | @@ -87,10 +87,10 @@ | ... | @@ -87,10 +87,10 @@ |
<div id="tab1" class="tab"> | <div id="tab1" class="tab"> | ||
<h2>Standard output</h2> | <h2>Standard output</h2> | ||
<span class="code"> | <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 | <pre>2019-06-10 16:21:17.274 INFO 13652 --- [ 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-10 16:21:17.274 INFO 13652 --- [ 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-10 16:21:17.276 INFO 13652 --- [ 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] | 2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@254d5edb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@483a64c, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3bda8b0d, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@190ba193, org.springframework.test.context.support.DirtiesContextTestExecutionListener@567f8fef, org.springframework.test.context.transaction.TransactionalTestExecutionListener@4f57f2aa, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3ee13246, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4a7aa0ce, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@632a682a] | ||
. ____ _ __ _ _ | . ____ _ __ _ _ | ||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ | ||
... | @@ -100,26 +100,26 @@ | ... | @@ -100,26 +100,26 @@ |
=========|_|==============|___/=/_/_/_/ | =========|_|==============|___/=/_/_/_/ | ||
:: Spring Boot :: (v2.1.4.RELEASE) | :: 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-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 13652 (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-10 16:21:17.297 INFO 13652 --- [ 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-10 16:21:17.418 INFO 13652 --- [ 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-10 16:21:17.430 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12ms. 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-10 16:21:17.477 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] 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-10 16:21:17.526 INFO 13652 --- [ 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-10 16:21:17.528 INFO 13652 --- [ 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 [ | 2019-06-10 16:21:17.554 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ | ||
name: default | 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-10 16:21:17.564 INFO 13652 --- [ 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-10 16:21:17.662 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' | ||
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' | 2019-06-10 16:21:17.662 INFO 13652 --- [ 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-10 16:21:17.926 INFO 13652 --- [ 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-10 16:21:17.934 WARN 13652 --- [ 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-10 16:21:18.120 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.842 seconds (JVM running for 5.277) | ||
2019-06-03 14:13:30.613 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory | 2019-06-10 16:21:18.121 INFO 13652 --- [ 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-10 16:21:18.135 INFO 13652 --- [ 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-10 16:21:18.136 INFO 13652 --- [ 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 | 2019-06-10 16:21:18.146 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 10 ms | ||
MockHttpServletRequest: | MockHttpServletRequest: | ||
HTTP Method = POST | HTTP Method = POST | ||
... | @@ -301,7 +301,7 @@ MockHttpServletResponse: | ... | @@ -301,7 +301,7 @@ MockHttpServletResponse: |
Error message = null | Error message = null | ||
Headers = [Content-Type:"application/json;charset=UTF-8"] | Headers = [Content-Type:"application/json;charset=UTF-8"] | ||
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}} | Body = {"id":1,"localDateTime":"2019-06-10T16:21:18.758","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 | Forwarded URL = null | ||
Redirected URL = null | Redirected URL = null | ||
Cookies = [] | Cookies = [] | ||
... | @@ -375,7 +375,7 @@ MockHttpServletResponse: | ... | @@ -375,7 +375,7 @@ MockHttpServletResponse: |
Error message = null | Error message = null | ||
Headers = [Content-Type:"application/json;charset=UTF-8"] | Headers = [Content-Type:"application/json;charset=UTF-8"] | ||
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}}] | Body = [{"id":1,"localDateTime":"2019-06-10T16:21:18.758","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 | Forwarded URL = null | ||
Redirected URL = null | Redirected URL = null | ||
Cookies = [] | Cookies = [] | ||
... | @@ -390,7 +390,7 @@ MockHttpServletResponse: | ... | @@ -390,7 +390,7 @@ MockHttpServletResponse: |
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> | <input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/> | ||
</label> | </label> | ||
</div>Generated by | </div>Generated by | ||
<a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/3 下午 02:13:31</p> | <a href="http://www.gradle.org">Gradle 4.10.3</a> at 2019/6/10 下午 04:21:19</p> | ||
</div> | </div> | ||
</div> | </div> | ||
</body> | </body> | ||
... | ... |
<?xml version="1.0" encoding="UTF-8"?> | <?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"> | <testsuite name="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2019-06-10T08:21:18" hostname="DESKTOP-1ADCP8A" time="0.687"> | ||
<properties/> | <properties/> | ||
<testcase name="getPrivacyPolicyAndSetChoice" classname="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" time="0.649"/> | <testcase name="getPrivacyPolicyAndSetChoice" classname="edu.prlab.tyler.iotgateway.gateway.GatewayHttpApiTest" time="0.687"/> | ||
<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 | <system-out><![CDATA[2019-06-10 16:21:17.274 INFO 13652 --- [ 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-10 16:21:17.274 INFO 13652 --- [ 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-10 16:21:17.276 INFO 13652 --- [ 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] | 2019-06-10 16:21:17.276 INFO 13652 --- [ Test worker] .b.t.c.SpringBootTestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@254d5edb, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@483a64c, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@3bda8b0d, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@190ba193, org.springframework.test.context.support.DirtiesContextTestExecutionListener@567f8fef, org.springframework.test.context.transaction.TransactionalTestExecutionListener@4f57f2aa, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@203a8aae, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@64f9b003, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4e535b84, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@3ee13246, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@4a7aa0ce, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@632a682a] | ||
. ____ _ __ _ _ | . ____ _ __ _ _ | ||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ | /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ | ||
... | @@ -15,26 +15,26 @@ | ... | @@ -15,26 +15,26 @@ |
=========|_|==============|___/=/_/_/_/ | =========|_|==============|___/=/_/_/_/ | ||
:: Spring Boot :: (v2.1.4.RELEASE) | :: 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-10 16:21:17.297 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Starting GatewayHttpApiTest on DESKTOP-1ADCP8A with PID 13652 (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-10 16:21:17.297 INFO 13652 --- [ 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-10 16:21:17.418 INFO 13652 --- [ 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-10 16:21:17.430 INFO 13652 --- [ Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12ms. 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-10 16:21:17.477 INFO 13652 --- [ Test worker] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$e0e33b69] 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-10 16:21:17.526 INFO 13652 --- [ 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-10 16:21:17.528 INFO 13652 --- [ 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 [ | 2019-06-10 16:21:17.554 INFO 13652 --- [ Test worker] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [ | ||
name: default | 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-10 16:21:17.564 INFO 13652 --- [ 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-10 16:21:17.662 INFO 13652 --- [ Test worker] o.h.t.schema.internal.SchemaCreatorImpl : HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@459d24be' | ||
2019-06-03 14:13:30.200 INFO 19448 --- [ Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' | 2019-06-10 16:21:17.662 INFO 13652 --- [ 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-10 16:21:17.926 INFO 13652 --- [ 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-10 16:21:17.934 WARN 13652 --- [ 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-10 16:21:18.120 INFO 13652 --- [ Test worker] e.p.t.i.gateway.GatewayHttpApiTest : Started GatewayHttpApiTest in 0.842 seconds (JVM running for 5.277) | ||
2019-06-03 14:13:30.613 INFO 19448 --- [ Test worker] o.h.h.i.QueryTranslatorFactoryInitiator : HHH000397: Using ASTQueryTranslatorFactory | 2019-06-10 16:21:18.121 INFO 13652 --- [ 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-10 16:21:18.135 INFO 13652 --- [ 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-10 16:21:18.136 INFO 13652 --- [ 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 | 2019-06-10 16:21:18.146 INFO 13652 --- [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 10 ms | ||
MockHttpServletRequest: | MockHttpServletRequest: | ||
HTTP Method = POST | HTTP Method = POST | ||
... | @@ -216,7 +216,7 @@ MockHttpServletResponse: | ... | @@ -216,7 +216,7 @@ MockHttpServletResponse: |
Error message = null | Error message = null | ||
Headers = [Content-Type:"application/json;charset=UTF-8"] | Headers = [Content-Type:"application/json;charset=UTF-8"] | ||
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}} | Body = {"id":1,"localDateTime":"2019-06-10T16:21:18.758","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 | Forwarded URL = null | ||
Redirected URL = null | Redirected URL = null | ||
Cookies = [] | Cookies = [] | ||
... | @@ -290,7 +290,7 @@ MockHttpServletResponse: | ... | @@ -290,7 +290,7 @@ MockHttpServletResponse: |
Error message = null | Error message = null | ||
Headers = [Content-Type:"application/json;charset=UTF-8"] | Headers = [Content-Type:"application/json;charset=UTF-8"] | ||
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}}] | Body = [{"id":1,"localDateTime":"2019-06-10T16:21:18.758","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 | Forwarded URL = null | ||
Redirected URL = null | Redirected URL = null | ||
Cookies = [] | Cookies = [] | ||
... | ... |
No preview for this file type
No preview for this file type
No preview for this file type
Please register or sign in to comment