MASViewAttributeSpec.m
3.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//
// MASViewAttributeSpec.m
// Masonry
//
// Created by Craig Siemens on 2013-10-09.
// Copyright 2013 Jonas Budelmann. All rights reserved.
//
#import "MASViewAttribute.h"
SpecBegin(MASViewAttributeSpec)
__block MAS_VIEW *view;
__block MASViewAttribute *viewAttribute;
beforeEach(^{
view = [MAS_VIEW new];
viewAttribute = [[MASViewAttribute alloc] initWithView:view layoutAttribute:NSLayoutAttributeLeft];
});
context(@"isEqual", ^{
it(@"should return YES whe the view and layoutAttribute are the same", ^{
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view
layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(YES);
});
it(@"should return NO when the view is different but the layoutAttribute is the same", ^{
MAS_VIEW *otherView = [MAS_VIEW new];
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView
layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
});
it(@"should return NO when the view is the same but the layoutAttribute is different", ^{
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view
layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
});
it(@"should return NO when the view is different and the layoutAttribute is different", ^{
MAS_VIEW *otherView = [MAS_VIEW new];
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView
layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
});
it(@"should return NO when non view attribute passed", ^{
expect([viewAttribute isEqual:NSArray.new]).to.equal(NO);
});
});
context(@"hash", ^{
it(@"should return the same hash when the view and layoutAttribute are the same", ^{
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view
layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute hash]).to.equal([otherViewAttribute hash]);
});
it(@"should return a different hash when the view is different but the layoutAttribute is the same", ^{
MAS_VIEW *otherView = [MAS_VIEW new];
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView
layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
});
it(@"should return a different hash when the view is the same but the layoutAttribute is different", ^{
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view
layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
});
it(@"should return a different hash when the view is different and the layoutAttribute is different", ^{
MAS_VIEW *otherView = [MAS_VIEW new];
MASViewAttribute *otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView
layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
});
});
SpecEnd