YYTestNestModel.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. //
  2. // YYTestNestModel.m
  3. // YYModel <https://github.com/ibireme/YYModel>
  4. //
  5. // Created by ibireme on 15/11/29.
  6. // Copyright (c) 2015 ibireme.
  7. //
  8. // This source code is licensed under the MIT-style license found in the
  9. // LICENSE file in the root directory of this source tree.
  10. //
  11. #import <XCTest/XCTest.h>
  12. #import "YYModel.h"
  13. @interface YYTestNestUser : NSObject
  14. @property uint64_t uid;
  15. @property NSString *name;
  16. @end
  17. @implementation YYTestNestUser
  18. @end
  19. @interface YYTestNestRepo : NSObject
  20. @property uint64_t repoID;
  21. @property NSString *name;
  22. @property YYTestNestUser *user;
  23. @end
  24. @implementation YYTestNestRepo
  25. @end
  26. @interface YYTestNestModel : XCTestCase
  27. @end
  28. @implementation YYTestNestModel
  29. - (void)test {
  30. NSString *json = @"{\"repoID\":1234,\"name\":\"YYModel\",\"user\":{\"uid\":5678,\"name\":\"ibireme\"}}";
  31. YYTestNestRepo *repo = [YYTestNestRepo yy_modelWithJSON:json];
  32. XCTAssert(repo.repoID == 1234);
  33. XCTAssert([repo.name isEqualToString:@"YYModel"]);
  34. XCTAssert(repo.user.uid == 5678);
  35. XCTAssert([repo.user.name isEqualToString:@"ibireme"]);
  36. NSDictionary *jsonObject = [repo yy_modelToJSONObject];
  37. XCTAssert([((NSString *)jsonObject[@"name"]) isEqualToString:@"YYModel"]);
  38. XCTAssert([((NSString *)((NSDictionary *)jsonObject[@"user"])[@"name"]) isEqualToString:@"ibireme"]);
  39. [repo yy_modelSetWithJSON:@{@"name" : @"YYImage", @"user" : @{@"name": @"bot"}}];
  40. XCTAssert(repo.repoID == 1234);
  41. XCTAssert([repo.name isEqualToString:@"YYImage"]);
  42. XCTAssert(repo.user.uid == 5678);
  43. XCTAssert([repo.user.name isEqualToString:@"bot"]);
  44. }
  45. @end