RACEventSpec.m 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //
  2. // RACEventSpec.m
  3. // ReactiveCocoa
  4. //
  5. // Created by Justin Spahr-Summers on 2013-01-07.
  6. // Copyright (c) 2013 GitHub, Inc. All rights reserved.
  7. //
  8. #import <Quick/Quick.h>
  9. #import <Nimble/Nimble.h>
  10. #import "RACEvent.h"
  11. QuickSpecBegin(RACEventSpec)
  12. qck_it(@"should return the singleton completed event", ^{
  13. RACEvent *event = RACEvent.completedEvent;
  14. expect(event).notTo(beNil());
  15. expect(event).to(beIdenticalTo(RACEvent.completedEvent));
  16. expect([event copy]).to(beIdenticalTo(event));
  17. expect(@(event.eventType)).to(equal(@(RACEventTypeCompleted)));
  18. expect(@(event.finished)).to(beTruthy());
  19. expect(event.error).to(beNil());
  20. expect(event.value).to(beNil());
  21. });
  22. qck_it(@"should return an error event", ^{
  23. NSError *error = [NSError errorWithDomain:@"foo" code:1 userInfo:nil];
  24. RACEvent *event = [RACEvent eventWithError:error];
  25. expect(event).notTo(beNil());
  26. expect(event).to(equal([RACEvent eventWithError:error]));
  27. expect([event copy]).to(equal(event));
  28. expect(@(event.eventType)).to(equal(@(RACEventTypeError)));
  29. expect(@(event.finished)).to(beTruthy());
  30. expect(event.error).to(equal(error));
  31. expect(event.value).to(beNil());
  32. });
  33. qck_it(@"should return an error event with a nil error", ^{
  34. RACEvent *event = [RACEvent eventWithError:nil];
  35. expect(event).notTo(beNil());
  36. expect(event).to(equal([RACEvent eventWithError:nil]));
  37. expect([event copy]).to(equal(event));
  38. expect(@(event.eventType)).to(equal(@(RACEventTypeError)));
  39. expect(@(event.finished)).to(beTruthy());
  40. expect(event.error).to(beNil());
  41. expect(event.value).to(beNil());
  42. });
  43. qck_it(@"should return a next event", ^{
  44. NSString *value = @"foo";
  45. RACEvent *event = [RACEvent eventWithValue:value];
  46. expect(event).notTo(beNil());
  47. expect(event).to(equal([RACEvent eventWithValue:value]));
  48. expect([event copy]).to(equal(event));
  49. expect(@(event.eventType)).to(equal(@(RACEventTypeNext)));
  50. expect(@(event.finished)).to(beFalsy());
  51. expect(event.error).to(beNil());
  52. expect(event.value).to(equal(value));
  53. });
  54. qck_it(@"should return a next event with a nil value", ^{
  55. RACEvent *event = [RACEvent eventWithValue:nil];
  56. expect(event).notTo(beNil());
  57. expect(event).to(equal([RACEvent eventWithValue:nil]));
  58. expect([event copy]).to(equal(event));
  59. expect(@(event.eventType)).to(equal(@(RACEventTypeNext)));
  60. expect(@(event.finished)).to(beFalsy());
  61. expect(event.error).to(beNil());
  62. expect(event.value).to(beNil());
  63. });
  64. QuickSpecEnd