MASViewAttributeSpec.m
2.92 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
//
// MASViewAttributeSpec.m
// Masonry
//
// Created by Craig Siemens on 2013-10-09.
// Copyright 2013 Jonas Budelmann. All rights reserved.
//
#import "MASViewAttribute.h"
SpecBegin(MASViewAttributeSpec){
MAS_VIEW *view;
MASViewAttribute *viewAttribute;
}
- (void)setUp {
view = [MAS_VIEW new];
viewAttribute = [[MASViewAttribute alloc] initWithView:view layoutAttribute:NSLayoutAttributeLeft];
}
- (void)testIsEqual {
//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);
//should return NO when the view is different but the layoutAttribute is the same
MAS_VIEW *otherView = [MAS_VIEW new];
otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
//should return NO when the view is the same but the layoutAttribute is different
otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
//should return NO when the view is different and the layoutAttribute is different
otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute isEqual:otherViewAttribute]).to.equal(NO);
//should return NO when non view attribute passed", ^{
expect([viewAttribute isEqual:NSArray.new]).to.equal(NO);
}
- (void)testHashing {
//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]);
//should return a different hash when the view is different but the layoutAttribute is the same
MAS_VIEW *otherView = [MAS_VIEW new];
otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView layoutAttribute:viewAttribute.layoutAttribute];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
//should return a different hash when the view is the same but the layoutAttribute is different
otherViewAttribute = [[MASViewAttribute alloc] initWithView:viewAttribute.view layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
//should return a different hash when the view is different and the layoutAttribute is different
otherViewAttribute = [[MASViewAttribute alloc] initWithView:otherView layoutAttribute:NSLayoutAttributeRight];
expect([viewAttribute hash]).toNot.equal([otherViewAttribute hash]);
}
SpecEnd