/Tests/Foundation/CPObjectTest.j

http://github.com/cacaodev/cappuccino · Unknown · 110 lines · 82 code · 28 blank · 0 comment · 0 complexity · 011716191426ef08f7092bddf9180508 MD5 · raw file

  1. @import <Foundation/CPObject.j>
  2. @implementation CPObjectTest : OJTestCase
  3. {
  4. }
  5. - (void)testCPObjectIsSubclassOfClassCPObjectShouldBeTrue
  6. {
  7. [self assertTrue:[CPObject isSubclassOfClass:[CPObject class]]];
  8. }
  9. - (void)testIsSubclassOfClassWithNonSubclassShouldBeFalse
  10. {
  11. [self assertFalse:[CPObject isSubclassOfClass:[SuperReceiver class]]];
  12. }
  13. - (void)testImplementsSelector
  14. {
  15. var receiver = [[Receiver alloc] init];
  16. [self assertTrue:[receiver implementsSelector:@selector(implementedInReceiverAndSuper)]];
  17. [self assertTrue:[receiver implementsSelector:@selector(implementedInReceiverOnly)]];
  18. [self assertFalse:[receiver implementsSelector:@selector(implementedInSuperOnly)]];
  19. [self assertFalse:[receiver implementsSelector:@selector(notImplementedInSuperNorReceiver)]];
  20. }
  21. - (void)testVersion
  22. {
  23. // zero by default
  24. [self assert:[CPObject version] equals:0];
  25. // create a random new version and round it to an integer
  26. var newVersion = ROUND(RAND() * 100);
  27. // make sure it's not zero
  28. while (newVersion == 0)
  29. newVersion = ROUND(RAND() * 100);
  30. [CPObject setVersion:newVersion];
  31. // test to make sure the assignment worked
  32. [self assert:[CPObject version] equals:newVersion];
  33. }
  34. - (void)testMultipleArgumentPerformSelector
  35. {
  36. var receiver = [[Receiver alloc] init],
  37. value1 = "a",
  38. value2 = "b",
  39. value3 = "c",
  40. value4 = "d",
  41. selector = @selector(implements:multiple:argument:selector:),
  42. returnValue = [receiver performSelector:selector withObjects:value1, value2, value3, value4],
  43. expectedReturnValue = value1 + value2 + value3 + value4;
  44. [self assertTrue:expectedReturnValue === returnValue];
  45. }
  46. - (void)testCPDescriptionOfObject
  47. {
  48. var jSON = {"name": "Martin", "access":null},
  49. d = CPDescriptionOfObject(jSON);
  50. [self assertTrue:d.indexOf("name:") !== -1 message:"Can't find 'name:' in description of json " + d];
  51. [self assertTrue:d.indexOf("access:") !== -1 message:"Can't find 'access:' in description of json " + d];
  52. }
  53. - (void)testCPObjectNotEqualToNil
  54. {
  55. var anObject = [[CPObject alloc] init];
  56. [self assert:anObject notEqual:nil];
  57. }
  58. @end
  59. @implementation SuperReceiver : CPObject
  60. {
  61. }
  62. - (void)implementedInReceiverAndSuper
  63. {
  64. }
  65. - (void)implementedInSuperOnly
  66. {
  67. }
  68. @end
  69. @implementation Receiver : SuperReceiver
  70. {
  71. }
  72. - (void)implementedInReceiverAndSuper
  73. {
  74. }
  75. - (void)implementedInReceiverOnly
  76. {
  77. }
  78. - (id)implements:(id)a multiple:(id)b argument:(id)c selector:(id)d
  79. {
  80. return a + b + c + d;
  81. }
  82. @end