From cb5a3ebbe0763a4d175924d403399d2fd1ffd7ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Rade?= Date: Thu, 23 Jan 2020 13:52:02 +0100 Subject: [PATCH] #42 Handle Property --- .../org/ro/core/aggregator/BaseAggregator.kt | 2 + .../ro/core/aggregator/ObjectAggregator.kt | 7 + .../ro/snapshots/demo2_0_0/DEMO_PROPERTY.kt | 51 +++ src/test/kotlin/org/ro/snapshots/sample.json | 349 ++---------------- src/test/kotlin/org/ro/to/PropertyTest.kt | 29 +- 5 files changed, 120 insertions(+), 318 deletions(-) create mode 100644 src/test/kotlin/org/ro/snapshots/demo2_0_0/DEMO_PROPERTY.kt diff --git a/src/main/kotlin/org/ro/core/aggregator/BaseAggregator.kt b/src/main/kotlin/org/ro/core/aggregator/BaseAggregator.kt index e66de3a..fa73f44 100644 --- a/src/main/kotlin/org/ro/core/aggregator/BaseAggregator.kt +++ b/src/main/kotlin/org/ro/core/aggregator/BaseAggregator.kt @@ -36,6 +36,8 @@ abstract class BaseAggregator { protected fun log(logEntry: LogEntry) { console.log("[BaseAggregator.log] unexpected:\n $logEntry}") + console.log(this::class.simpleName) + console.log(logEntry) } fun invoke(link: Link) { diff --git a/src/main/kotlin/org/ro/core/aggregator/ObjectAggregator.kt b/src/main/kotlin/org/ro/core/aggregator/ObjectAggregator.kt index 0e3bea0..62e2bb7 100644 --- a/src/main/kotlin/org/ro/core/aggregator/ObjectAggregator.kt +++ b/src/main/kotlin/org/ro/core/aggregator/ObjectAggregator.kt @@ -4,6 +4,7 @@ import org.ro.core.event.LogEntry import org.ro.core.model.DisplayObject import org.ro.layout.Layout import org.ro.to.HttpError +import org.ro.to.Property import org.ro.to.TObject import org.ro.ui.ErrorAlert import org.ro.ui.kv.UiManager @@ -18,6 +19,7 @@ class ObjectAggregator(val actionTitle: String) : BaseAggregator() { when (val obj = logEntry.getTransferObject()) { is TObject -> handleObject(obj) + is Property -> handleProperty(obj) is Layout -> handleLayout(obj) is HttpError -> ErrorAlert(logEntry).open() else -> log(logEntry) @@ -40,6 +42,11 @@ class ObjectAggregator(val actionTitle: String) : BaseAggregator() { return dsp.getObject() } + private fun handleProperty(property: Property) { + console.log("[ObjectAggregator.handleProperty] yet to be implemented") + console.log(property) + } + private fun handleLayout(layout: Layout) { dsp.layout = layout layout.properties.forEach { diff --git a/src/test/kotlin/org/ro/snapshots/demo2_0_0/DEMO_PROPERTY.kt b/src/test/kotlin/org/ro/snapshots/demo2_0_0/DEMO_PROPERTY.kt new file mode 100644 index 0000000..8f809f6 --- /dev/null +++ b/src/test/kotlin/org/ro/snapshots/demo2_0_0/DEMO_PROPERTY.kt @@ -0,0 +1,51 @@ +package org.ro.snapshots.demo2_0_0 + +import org.ro.snapshots.Response + +object DEMO_PROPERTY : Response(){ + override val url = "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string" + override val str = """{ + "id": "string", + "memberType": "property", + "links": [ + { + "rel": "self", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" + }, + { + "rel": "up", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object\"", + "title": "TextDemo" + }, + { + "rel": "urn:org.restfulobjects:rels/modify;property=\"string\"", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "PUT", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"", + "arguments": { + "value": null + } + }, + { + "rel": "urn:org.restfulobjects:rels/clear;property=\"string\"", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "DELETE", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" + }, + { + "rel": "describedby", + "href": "http://localhost:8080/restful/domain-types/demo.Text/properties/string", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/property-description\"" + } + ], + "value": "a string (click me)", + "extensions": { + "x-isis-format": "string" + } +}""" +} diff --git a/src/test/kotlin/org/ro/snapshots/sample.json b/src/test/kotlin/org/ro/snapshots/sample.json index 3f3b24c..9e6b94c 100644 --- a/src/test/kotlin/org/ro/snapshots/sample.json +++ b/src/test/kotlin/org/ro/snapshots/sample.json @@ -1,319 +1,44 @@ { - "row": [ + "id": "string", + "memberType": "property", + "links": [ { - "cols": [ - { - "col": { - "domainObject": { - "named": null, - "describedAs": null, - "plural": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/element", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object\"" - }, - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "namedEscaped": null - }, - "action": [ - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/action", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/actions/clearHints", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-action\"" - }, - "id": "clearHints", - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "hidden": null, - "namedEscaped": null, - "position": null, - "promptStyle": null, - "redirect": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/action", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/actions/downloadLayoutXml", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-action\"" - }, - "id": "downloadLayoutXml", - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "hidden": null, - "namedEscaped": null, - "position": null, - "promptStyle": null, - "redirect": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/action", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/actions/openRestApi", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-action\"" - }, - "id": "openRestApi", - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "hidden": null, - "namedEscaped": null, - "position": null, - "promptStyle": null, - "redirect": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/action", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/actions/rebuildMetamodel", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-action\"" - }, - "id": "rebuildMetamodel", - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "hidden": null, - "namedEscaped": null, - "position": null, - "promptStyle": null, - "redirect": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/action", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/actions/downloadMetaModelXml", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-action\"" - }, - "id": "downloadMetaModelXml", - "bookmarking": null, - "cssClass": null, - "cssClassFa": null, - "cssClassFaPosition": null, - "hidden": null, - "namedEscaped": null, - "position": null, - "promptStyle": null, - "redirect": null - } - ], - "metadataError": null, - "cssClass": null, - "size": null, - "id": null, - "span": 12, - "unreferencedActions": true, - "unreferencedCollections": null - } - } - ], - "metadataError": null, - "cssClass": null, - "id": null + "rel": "self", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" }, { - "cols": [ - { - "col": { - "domainObject": null, - "fieldSet": [ - { - "name": "Editable", - "property": [ - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/property", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" - }, - "id": "string", - "cssClass": null, - "hidden": null, - "labelPosition": null, - "multiLine": null, - "namedEscaped": null, - "promptStyle": null, - "renderDay": null, - "typicalLength": null, - "repainting": null, - "unchanging": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/property", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/stringMultiline", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" - }, - "id": "stringMultiline", - "cssClass": null, - "hidden": null, - "labelPosition": null, - "multiLine": null, - "namedEscaped": null, - "promptStyle": null, - "renderDay": null, - "typicalLength": null, - "repainting": null, - "unchanging": null - } - ], - "metadataError": null, - "id": "editable", - "unreferencedActions": null, - "unreferencedProperties": null - }, - { - "name": "Readonly", - "property": [ - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/property", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/stringReadonly", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" - }, - "id": "stringReadonly", - "cssClass": null, - "hidden": null, - "labelPosition": null, - "multiLine": null, - "namedEscaped": null, - "promptStyle": null, - "renderDay": null, - "typicalLength": null, - "repainting": null, - "unchanging": null - }, - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/property", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/stringMultilineReadonly", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" - }, - "id": "stringMultilineReadonly", - "cssClass": null, - "hidden": null, - "labelPosition": null, - "multiLine": null, - "namedEscaped": null, - "promptStyle": null, - "renderDay": null, - "typicalLength": null, - "repainting": null, - "unchanging": null - } - ], - "metadataError": null, - "id": "readonly", - "unreferencedActions": null, - "unreferencedProperties": true - } - ], - "metadataError": null, - "cssClass": null, - "size": null, - "id": null, - "span": 6, - "unreferencedActions": null, - "unreferencedCollections": null - } - }, - { - "col": { - "domainObject": null, - "fieldSet": [ - { - "name": "Description", - "property": [ - { - "named": null, - "describedAs": null, - "metadataError": null, - "link": { - "rel": "urn:org.restfulobjects:rels/property", - "method": "GET", - "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/description", - "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" - }, - "id": "description", - "cssClass": null, - "hidden": null, - "labelPosition": "NONE", - "multiLine": null, - "namedEscaped": null, - "promptStyle": null, - "renderDay": null, - "typicalLength": null, - "repainting": null, - "unchanging": null - } - ], - "metadataError": "More than one column with 'unreferencedProperties' attribute set", - "id": "description", - "unreferencedActions": null, - "unreferencedProperties": true - } - ], - "metadataError": null, - "cssClass": null, - "size": null, - "id": null, - "span": 6, - "unreferencedActions": null, - "unreferencedCollections": true - } - } - ], - "metadataError": null, - "cssClass": null, - "id": null + "rel": "up", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object\"", + "title": "TextDemo" + }, + { + "rel": "urn:org.restfulobjects:rels/modify;property=\"string\"", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "PUT", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"", + "arguments": { + "value": null + } + }, + { + "rel": "urn:org.restfulobjects:rels/clear;property=\"string\"", + "href": "http://localhost:8080/restful/objects/demo.Text/AR-LCAAAAAAAAACFkLEOgkAMhneeorlJB0Xj4nBASIybi9EHOKExF3s9wx0Kby8ERKIkdvrTv_36pzKpDMEDC6ctR2K9XAlAzmyu-RqJ82m_2ApwXnGuyDJGokYnkjiQOzQ2DqAp6XzRTMcKOgGzjHR2A4NzGfbeePBQktekGeMUzFv3u4G7K-ZWbKBtu-UE7QMYY4-ocstUNzmKXg6BLqUHRWSfDjxWHhwSZn4ADquTMQc3_QZPpf1z6pcayLD75QsMtJyWiwEAAA==/properties/string", + "method": "DELETE", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/object-property\"" + }, + { + "rel": "describedby", + "href": "http://localhost:8080/restful/domain-types/demo.Text/properties/string", + "method": "GET", + "type": "application/json;profile=\"urn:org.restfulobjects:repr-types/property-description\"" } ], - "cssClass": null + "value": "a string (click me)", + "extensions": { + "x-isis-format": "string" + } } diff --git a/src/test/kotlin/org/ro/to/PropertyTest.kt b/src/test/kotlin/org/ro/to/PropertyTest.kt index 52ac38b..1e8bec4 100644 --- a/src/test/kotlin/org/ro/to/PropertyTest.kt +++ b/src/test/kotlin/org/ro/to/PropertyTest.kt @@ -2,6 +2,7 @@ package org.ro.to import kotlinx.serialization.UnstableDefault import org.ro.handler.PropertyHandler +import org.ro.snapshots.demo2_0_0.DEMO_PROPERTY import org.ro.snapshots.simpleapp1_16_0.FR_OBJECT_PROPERTY_ import org.ro.snapshots.simpleapp1_16_0.SO_PROPERTY import kotlin.test.Test @@ -12,16 +13,23 @@ import kotlin.test.assertTrue class PropertyTest { @Test - fun testFixtureResultObjectPropety() { - val jsonStr = FR_OBJECT_PROPERTY_.str + fun testDemoObjectProperty() { + val jsonStr = DEMO_PROPERTY.str val p = PropertyHandler().parse(jsonStr) as Property - val actual = p.disabledReason!! - val expected = "Non-cloneable view models are read-only; Immutable" - assertEquals(expected, actual) + assertEquals("string", p.id) + assertEquals("string", p.extensions!!.xIsisFormat) + assertEquals(5, p.links.size) + + val modifyLink = p.links[2] + assertEquals("PUT", modifyLink.method) + + val arguments = modifyLink.arguments + assertEquals(1, arguments.size) + assertTrue(arguments.containsKey("value")) } @Test - fun testSimpleObjectPropety() { + fun testSimpleObjectProperty() { val jsonStr = SO_PROPERTY.str val p = PropertyHandler().parse(jsonStr) as Property assertEquals("notes", p.id) @@ -36,4 +44,13 @@ class PropertyTest { assertTrue(arguments.containsKey("value")) } + @Test + fun testFixtureResultObjectPropety() { + val jsonStr = FR_OBJECT_PROPERTY_.str + val p = PropertyHandler().parse(jsonStr) as Property + val actual = p.disabledReason!! + val expected = "Non-cloneable view models are read-only; Immutable" + assertEquals(expected, actual) + } + }