@@ -27,7 +27,7 @@ class ResourceObjectTests: XCTestCase {
2727
2828 func test_optional_relationship_operator_access( ) {
2929 let entity1 = TestEntity1 ( attributes: . none, relationships: . none, meta: . none, links: . none)
30- let entity = TestEntity9 ( attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalNullableOne: nil , optionalMany: . init( resourceObjects: [ entity1, entity1] , meta: . none, links: . none) ) , meta: . none, links: . none)
30+ let entity = TestEntity9 ( attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalNullableOne: nil , optionalMany: . init( resourceObjects: [ entity1, entity1] , meta: . none, links: . none) ) , meta: . none, links: . none)
3131
3232 XCTAssertEqual ( entity ~> \. optionalOne, Optional ( entity1. id) )
3333 XCTAssertEqual ( ( entity ~> \. optionalOne) . rawValue, Optional ( entity1. id. rawValue) )
@@ -44,7 +44,7 @@ class ResourceObjectTests: XCTestCase {
4444
4545 func test_optionalToMany_relationship_opeartor_access( ) {
4646 let entity1 = TestEntity1 ( attributes: . none, relationships: . none, meta: . none, links: . none)
47- let entity = TestEntity9 ( attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: nil , optionalNullableOne: nil , optionalMany: . init( resourceObjects: [ entity1, entity1] , meta: . none, links: . none) ) , meta: . none, links: . none)
47+ let entity = TestEntity9 ( attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: nil , optionalNullableOne: nil , optionalMany: . init( resourceObjects: [ entity1, entity1] , meta: . none, links: . none) ) , meta: . none, links: . none)
4848
4949 XCTAssertEqual ( entity ~> \. optionalMany, [ entity1. id, entity1. id] )
5050 }
@@ -84,13 +84,13 @@ class ResourceObjectTests: XCTestCase {
8484 let _ = TestEntity6 ( id: . init( rawValue: " 6 " ) , attributes: . init( here: . init( value: " here " ) , maybeHere: nil , maybeNull: . init( value: nil ) ) , relationships: . none, meta: . none, links: . none)
8585 let _ = TestEntity7 ( id: . init( rawValue: " 7 " ) , attributes: . init( here: . init( value: " hello " ) , maybeHereMaybeNull: . init( value: " world " ) ) , relationships: . none, meta: . none, links: . none)
8686 XCTAssertNoThrow ( try TestEntity8 ( id: . init( rawValue: " 8 " ) , attributes: . init( string: . init( value: " hello " ) , int: . init( value: 10 ) , stringFromInt: . init( rawValue: 20 ) , plus: . init( rawValue: 30 ) , doubleFromInt: . init( rawValue: 32 ) , omitted: nil , nullToString: . init( rawValue: nil ) ) , relationships: . none, meta: . none, links: . none) )
87- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
88- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: . init( resourceObject: nil ) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
89- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: . init( id: nil ) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
90- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
91- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: nil , optionalOne: entity1. pointer, optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
92- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalMany: nil ) , meta: . none, links: . none)
93- let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalMany: . init( resourceObjects: [ ] , meta: . none, links: . none) ) , meta: . none, links: . none)
87+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
88+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , one: entity1. pointer, nullableOne: . init( resourceObject: nil ) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
89+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: . init( id: nil ) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
90+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalOne: nil , optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
91+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: nil , optionalOne: entity1. pointer, optionalNullableOne: nil , optionalMany: nil ) , meta: . none, links: . none)
92+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalMany: nil ) , meta: . none, links: . none)
93+ let _ = TestEntity9 ( id: . init( rawValue: " 9 " ) , attributes: . none, relationships: . init( meta : . init ( meta : . init ( x : " hello " , y : 5 ) , links : . none ) , optionalMeta : nil , one: entity1. pointer, nullableOne: nil , optionalOne: nil , optionalNullableOne: . init( resourceObject: entity1, meta: . none, links: . none) , optionalMany: . init( resourceObjects: [ ] , meta: . none, links: . none) ) , meta: . none, links: . none)
9494 let e10id1 = TestEntity10 . Identifier ( rawValue: " hello " )
9595 let e10id2 = TestEntity10 . Id ( rawValue: " world " )
9696 let e10id3 : TestEntity10 . Id = " ! "
@@ -356,6 +356,8 @@ extension ResourceObjectTests {
356356 let entity = decoded ( type: TestEntity9 . self,
357357 data: entity_optional_not_omitted_relationship)
358358
359+ XCTAssertEqual ( entity. relationships. meta. meta, TestEntityMeta ( x: " world " , y: 5 ) )
360+ XCTAssertEqual ( entity. relationships. optionalMeta? . meta, TestEntityMeta ( x: " world " , y: 5 ) )
359361 XCTAssertEqual ( ( entity ~> \. nullableOne) ? . rawValue, " 3323 " )
360362 XCTAssertEqual ( ( entity ~> \. one) . rawValue, " 4459 " )
361363 XCTAssertNil ( entity ~> \. optionalOne)
@@ -391,6 +393,8 @@ extension ResourceObjectTests {
391393 let entity = decoded ( type: TestEntity9 . self,
392394 data: entity_optional_nullable_nulled_relationship)
393395
396+ XCTAssertEqual ( entity. relationships. meta. meta, TestEntityMeta ( x: " world " , y: 5 ) )
397+ XCTAssertNil ( entity. relationships. optionalMeta)
394398 XCTAssertEqual ( ( entity ~> \. nullableOne) ? . rawValue, " 3323 " )
395399 XCTAssertEqual ( ( entity ~> \. one) . rawValue, " 4459 " )
396400 XCTAssertNil ( entity ~> \. optionalNullableOne)
@@ -786,6 +790,10 @@ extension ResourceObjectTests {
786790 typealias Attributes = NoAttributes
787791
788792 public struct Relationships : JSONAPI . Relationships {
793+ let meta : MetaRelationship < TestEntityMeta , NoLinks >
794+
795+ let optionalMeta : MetaRelationship < TestEntityMeta , NoLinks > ?
796+
789797 let one : ToOneRelationship < TestEntity1 , NoMetadata , NoLinks >
790798
791799 let nullableOne : ToOneRelationship < TestEntity1 ? , NoMetadata , NoLinks >
@@ -835,11 +843,14 @@ extension ResourceObjectTests {
835843
836844 public struct Relationships : JSONAPI . Relationships {
837845 public init ( ) {
846+ optionalMeta = nil
838847 optionalOne = nil
839848 optionalNullableOne = nil
840849 optionalMany = nil
841850 }
842851
852+ let optionalMeta : MetaRelationship < TestEntityMeta , NoLinks > ?
853+
843854 let optionalOne : ToOneRelationship < TestEntity1 , NoMetadata , NoLinks > ?
844855
845856 let optionalNullableOne : ToOneRelationship < TestEntity1 ? , NoMetadata , NoLinks > ?
0 commit comments