-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestMapObject.m
91 lines (65 loc) · 2.64 KB
/
TestMapObject.m
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
84
85
86
87
88
89
90
91
//
// TestMapObject.m
// MathWars
//
// Created by Inf on 24.02.10.
// Copyright 2010 Soulteam. All rights reserved.
//
#import <OCMock/OCMock.h>
#import "PlayerProtocol.h"
#import "MapObject.h"
#import "TestMapObject.h"
@implementation TestMapObject
-(void)createMapObject {
mapObject = [[MapObject alloc] init];
}
-(void)setUp {
mockPlayer = [OCMockObject mockForProtocol:@protocol(PlayerProtocol)];
mockEnemy = [OCMockObject mockForProtocol:@protocol(PlayerProtocol)];
mockPlayerUnit = [OCMockObject mockForClass:[Unit class]];
mockEnemyUnit = [OCMockObject mockForClass:[Unit class]];
mockCombat = [OCMockObject mockForClass:[Combat class]];
[[[mockCombat stub] andReturn:mockPlayerUnit] attacker];
[[[mockCombat stub] andReturn:mockEnemyUnit] protector];
[[[mockPlayerUnit stub] andReturn:mockPlayer] owner];
[[[mockEnemyUnit stub] andReturn:mockEnemy] owner];
[[mockPlayer stub] createPuzzleOfDifficulty:1 withDelegate:[OCMArg any]];
[[mockPlayer stub] copyPuzzle:[OCMArg any]];
[[mockEnemy stub] createPuzzleOfDifficulty:1 withDelegate:[OCMArg any]];
[[mockEnemy stub] copyPuzzle:[OCMArg any]];
[self createMapObject];
}
-(void)tearDown {
[mapObject release];
}
-(void)testEmptyObject {
STAssertNotNil(mapObject.neighbours, @"Соседи должны быть заданы");
STAssertNil(mapObject.guardian, @"В новом объекте не должно быть стражника");
[mapObject onUnitEnter:mockPlayerUnit];
STAssertEquals(mapObject.guardian, mockPlayerUnit, @"Стражник должен сменится");
}
-(void)testGuardedObject {
mapObject.guardian = mockPlayerUnit;
[[mockPlayer expect] startCombat:([OCMArg any])];
[[mockEnemy expect] startCombat:([OCMArg any])];
[mapObject onUnitEnter:mockEnemyUnit];
[mockPlayer verify];
[mockEnemy verify];
}
-(void)testCombatLose {
mapObject.guardian = mockPlayerUnit;
[[mockPlayer stub] startCombat:(Combat*)[OCMArg any]];
[[mockEnemy stub] startCombat:(Combat*)[OCMArg any]];
[mapObject onUnitEnter:mockEnemyUnit];
[mapObject combat:nil finishedWithWinner:mockEnemyUnit];
STAssertEquals(mapObject.guardian, mockEnemyUnit, @"В случае проигрыша атакующий должен стать стражником");
}
-(void)testCombatWin {
mapObject.guardian = mockPlayerUnit;
[[mockPlayer stub] startCombat:(Combat*)[OCMArg any]];
[[mockEnemy stub] startCombat:(Combat*)[OCMArg any]];
[mapObject onUnitEnter:mockEnemyUnit];
[mapObject combat:nil finishedWithWinner:mockPlayerUnit];
STAssertEquals(mapObject.guardian, mockPlayerUnit, @"В случае выигрыша стражник не должен меняться");
}
@end