Repository navigation
Expand file tree
/
Copy pathdomain.cpp
More file actions
87 lines (73 loc) · 1.84 KB
/
Copy pathdomain.cpp
File metadata and controls
87 lines (73 loc) · 1.84 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
84
85
86
87
#include "domain.h"
int Task::getId() const {
return id;
}
string Task::getTitle() const {
return title;
}
vector<string> Task::getProgrammers() const {
return program;
}
string Task::getState() const {
return state;
}
void Task::validate(int id, string title, vector<string> &program, string state) {
string exc="";
if(title==""){
exc+="Titlul nu poate fi vid\n";
}
if(program.empty() || program.size()>4){
exc+="Orice task poate avea intre 1 si 4 programatori\n";
}
if(state==""){
exc+="Starea nu poate fi vida\n";
}
if(state!="open" && state!="closed" && state!="inprogress"){
exc+="Starea nu poate fi doar open, closed sau inprogress\n";
}
if(exc!=""){
throw ValidationException(exc);
}
}
void Task::setState(string new_state) {
state=new_state;
}
void test_domain(){
vector<string> prog;
prog.push_back("Alex Sirbu");
prog.push_back("Daciana Roman");
auto t=Task(1,"Soft",prog,"open");
assert(t.getId()==1);
assert(t.getTitle()=="Soft");
assert(t.getProgrammers()==prog);
assert(t.getState()=="open");
Task::validate(1,"Soft",prog,"open");
try{
Task::validate(1,"",prog,"open");
assert(false);
} catch(ValidationException& ve){
assert(true);
}
try{
Task::validate(1,"Soft",prog,"");
assert(false);
} catch(ValidationException& ve){
assert(true);
}
try{
prog.push_back(prog[0]);
prog.push_back(prog[0]);
prog.push_back(prog[0]);
Task::validate(1,"Soft",prog,"open");
assert(false);
} catch(ValidationException& ve){
assert(true);
}
try{
prog.clear();
Task::validate(1,"Soft",prog,"open");
assert(false);
} catch(ValidationException& ve){
assert(true);
}
}