Skip to content

Commit 5c3fea5

Browse files
committed
feat: add tests for pass command
1 parent 3eeae61 commit 5c3fea5

File tree

5 files changed

+144
-33
lines changed

5 files changed

+144
-33
lines changed

ircserv

-222 KB
Binary file not shown.

tests/Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Insert the test rules here
22
TESTS := user nick invite join kick part topic privmsg quit
3-
TESTS += marvinbot mode
3+
TESTS += marvinbot mode pass
44

55
CYAN := \33[1;36m
66
RESET := \033[0m
@@ -79,6 +79,10 @@ marvinbot: $(OBJS) TestMarvinBot.cpp
7979
mode: $(OBJS) TestMode.cpp
8080
@$(call run, "$^")
8181

82+
.PHONY: pass
83+
pass: $(OBJS) TestPass.cpp
84+
@$(call run, "$^")
85+
8286
# Insert the test rules here, follwing the example above.
8387

8488
# Makefile rules to clean stdin/stdout/stderr test's files

tests/TestNick.cpp

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: gilmar <gilmar@student.42.fr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2024/05/24 18:03:34 by yde-goes #+# #+# */
9-
/* Updated: 2024/05/30 16:48:25 by gilmar ### ########.fr */
9+
/* Updated: 2024/05/30 17:51:14 by gilmar ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -49,9 +49,9 @@ Test(NickCommand, err_needmoreparams)
4949
Client* client = mockClient();
5050

5151
Server server;
52-
5352
server._clients.push_back(*client);
54-
server._handler_client_nickname("", 4);
53+
server._handler_client_nickname("", client->get_fd());
54+
5555
cr_assert(eq(int, server._reply_code, 461));
5656
}
5757

@@ -64,9 +64,9 @@ Test(NickCommand, err_notregistered)
6464
client->set_is_authenticated(false);
6565

6666
Server server;
67-
6867
server._clients.push_back(*client);
69-
server._handler_client_nickname(client->get_nickname(), 4);
68+
server._handler_client_nickname(client->get_nickname(), client->get_fd());
69+
7070
cr_assert(eq(int, server._reply_code, 451));
7171
}
7272

@@ -79,9 +79,9 @@ Test(NickCommand, err_erroneusnick_1)
7979
client->set_is_authenticated(true);
8080

8181
Server server;
82-
8382
server._clients.push_back(*client);
84-
server._handler_client_nickname("new_nickname", 4);
83+
server._handler_client_nickname("new_nickname", client->get_fd());
84+
8585
cr_assert(eq(int, server._reply_code, 432));
8686
}
8787

@@ -91,9 +91,9 @@ Test(NickCommand, err_erroneusnick_2)
9191
client->set_is_authenticated(true);
9292

9393
Server server;
94-
9594
server._clients.push_back(*client);
96-
server._handler_client_nickname("$Gilmar", 4);
95+
server._handler_client_nickname("$Gilmar", client->get_fd());
96+
9797
cr_assert(eq(int, server._reply_code, 432));
9898
}
9999

@@ -103,9 +103,9 @@ Test(NickCommand, err_erroneusnick_3)
103103
client->set_is_authenticated(true);
104104

105105
Server server;
106-
107106
server._clients.push_back(*client);
108-
server._handler_client_nickname("Ygor%", 4);
107+
server._handler_client_nickname("Ygor%", client->get_fd());
108+
109109
cr_assert(eq(int, server._reply_code, 432));
110110
}
111111

@@ -115,9 +115,9 @@ Test(NickCommand, err_erroneusnick_4)
115115
client->set_is_authenticated(true);
116116

117117
Server server;
118-
119118
server._clients.push_back(*client);
120-
server._handler_client_nickname("Car#los", 4);
119+
server._handler_client_nickname("Car#los", client->get_fd());
120+
121121
cr_assert(eq(int, server._reply_code, 432));
122122
}
123123

@@ -130,9 +130,9 @@ Test(NickCommand, success_setnickname)
130130
client->set_is_authenticated(true);
131131

132132
Server server;
133-
134133
server._clients.push_back(*client);
135-
server._handler_client_nickname("newNickname", 4);
134+
server._handler_client_nickname("newNickname", client->get_fd());
135+
136136
cr_assert(eq(int, server._reply_code, 200));
137137
}
138138

@@ -149,10 +149,10 @@ Test(NickCommand, err_nickinuse)
149149
client1->set_is_authenticated(true);
150150

151151
Server server;
152-
153152
server._clients.push_back(*client);
154153
server._clients.push_back(*client1);
155-
server._handler_client_nickname(client1->get_nickname(), 4);
154+
server._handler_client_nickname(client1->get_nickname(), client1->get_fd());
155+
156156
cr_assert(eq(int, server._reply_code, 433));
157157
}
158158

@@ -165,9 +165,9 @@ Test(NickCommand, success_changenickname)
165165
client->set_is_authenticated(true);
166166

167167
Server server;
168-
169168
server._clients.push_back(*client);
170-
server._handler_client_nickname("newNickname", 4);
169+
server._handler_client_nickname(client->get_nickname(), client->get_fd());
170+
171171
cr_assert(eq(int, server._reply_code, 200));
172172
}
173173

@@ -181,8 +181,8 @@ Test(NickCommand, success_readytologin)
181181
client->set_is_logged(false);
182182

183183
Server server;
184-
185184
server._clients.push_back(*client);
186-
server._handler_client_nickname("Nickname", 4);
185+
server._handler_client_nickname(client->get_nickname(), client->get_fd());
186+
187187
cr_assert(eq(int, server._reply_code, 001));
188188
}

tests/TestPass.cpp

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/* ************************************************************************** */
2+
/* */
3+
/* ::: :::::::: */
4+
/* TestPass.cpp :+: :+: :+: */
5+
/* +:+ +:+ +:+ */
6+
/* By: gilmar <gilmar@student.42.fr> +#+ +:+ +#+ */
7+
/* +#+#+#+#+#+ +#+ */
8+
/* Created: 2024/05/30 17:27:49 by gilmar #+# #+# */
9+
/* Updated: 2024/05/30 17:42:55 by gilmar ### ########.fr */
10+
/* */
11+
/* ************************************************************************** */
12+
13+
#include <criterion/criterion.h>
14+
#include <criterion/new/assert.h>
15+
#include "Client.hpp"
16+
#include "Channel.hpp"
17+
#define private public
18+
#include "Server.hpp"
19+
20+
/*
21+
* Cenários de Teste:
22+
* 1. O comando PASS é recebido sem parâmetros suficientes.
23+
* 2. O comando PASS é recebido e o cliente já está autenticado.
24+
* 3. O comando PASS é recebido e a senha do cliente está incorreta.
25+
* 4. O comando PASS é recebido e a senha do cliente está correta.
26+
* 5. O comando PASS é recebido e o cliente não está logado.
27+
* 6. O comando PASS é recebido e o cliente está logado.
28+
* 7. O comando PASS é recebido e o cliente não está autenticado.
29+
* 8. O comando PASS é recebido e o cliente está autenticado.
30+
*
31+
*/
32+
33+
Client *mockClient()
34+
{
35+
Client *client = new Client();
36+
client->set_fd(4);
37+
client->set_username("Username");
38+
client->set_nickname("Nickname");
39+
client->set_password("Password");
40+
client->set_buffer("Pass password");
41+
client->set_is_logged(true);
42+
client->set_is_authenticated(true);
43+
client->set_is_operator(false);
44+
return client;
45+
}
46+
47+
/*
48+
* 1. O comando PASS é recebido sem parâmetros suficientes.
49+
*/
50+
Test(ServerHandlerClientPassword, TestPassWithoutEnoughParameters)
51+
{
52+
Client *client = mockClient();
53+
54+
Server server;
55+
server._clients.push_back(*client);
56+
server._handler_client_password("", client->get_fd());
57+
58+
cr_assert_eq(server._reply_code, 461);
59+
}
60+
61+
/*
62+
* 2. O comando PASS é recebido e o cliente já está autenticado.
63+
*/
64+
Test(ServerHandlerClientPassword, TestPassClientIsAuthenticated)
65+
{
66+
Client *client = mockClient();
67+
client->set_is_authenticated(true);
68+
69+
Server server;
70+
server._password = "Password";
71+
server._clients.push_back(*client);
72+
server._handler_client_password("Password", client->get_fd());
73+
74+
cr_assert_eq(server._reply_code, 462);
75+
}
76+
77+
/*
78+
* 3. O comando PASS é recebido e a senha do cliente está incorreta.
79+
*/
80+
Test(ServerHandlerClientPassword, TestPassIncorrectPassword)
81+
{
82+
Client *client = mockClient();
83+
client->set_is_authenticated(false);
84+
85+
Server server;
86+
server._password = "Password";
87+
server._clients.push_back(*client);
88+
server._handler_client_password("IncorrectPassword", client->get_fd());
89+
90+
cr_assert_eq(server._reply_code, 464);
91+
}
92+
93+
/*
94+
* 4. O comando PASS é recebido e a senha do cliente está correta.
95+
*/
96+
Test(ServerHandlerClientPassword, TestPassCorrectPassword)
97+
{
98+
Client *client = mockClient();
99+
client->set_is_authenticated(false);
100+
101+
Server server;
102+
server._password = "Password";
103+
server._clients.push_back(*client);
104+
server._handler_client_password("Password", client->get_fd());
105+
106+
cr_assert_eq(server._reply_code, 200);
107+
}

tests/TestUser.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: gilmar <gilmar@student.42.fr> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2024/05/24 18:03:11 by yde-goes #+# #+# */
9-
/* Updated: 2024/05/30 16:53:44 by gilmar ### ########.fr */
9+
/* Updated: 2024/05/30 17:43:27 by gilmar ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -48,9 +48,9 @@ Test(UserCommand, err_needmoreparams)
4848
Client* client = mockClient();
4949

5050
Server server;
51-
5251
server._clients.push_back(*client);
53-
server._handler_client_username("", 4);
52+
server._handler_client_username("", client->get_fd());
53+
5454
cr_assert(eq(int, server._reply_code, 461));
5555
}
5656

@@ -64,9 +64,9 @@ Test(UserCommand, err_notregistered)
6464
client->set_is_logged(false);
6565

6666
Server server;
67-
6867
server._clients.push_back(*client);
69-
server._handler_client_username(client->get_username(), 4);
68+
server._handler_client_username(client->get_username(), client->get_fd());
69+
7070
cr_assert(eq(int, server._reply_code, 451));
7171
}
7272

@@ -78,9 +78,9 @@ Test(UserCommand, err_alreadyregistered)
7878
Client* client = mockClient();
7979

8080
Server server;
81-
8281
server._clients.push_back(*client);
83-
server._handler_client_username(client->get_username(), 4);
82+
server._handler_client_username(client->get_username(), client->get_fd());
83+
8484
cr_assert(eq(int, server._reply_code, 462));
8585
}
8686

@@ -95,9 +95,9 @@ Test(UserCommand, success_readytologin)
9595
client->set_is_logged(false);
9696

9797
Server server;
98-
9998
server._clients.push_back(*client);
100-
server._handler_client_username("Username", 4);
99+
server._handler_client_username("Username", client->get_fd());
100+
101101
cr_assert(eq(int, server._reply_code, 001));
102102
}
103103

@@ -113,8 +113,8 @@ Test(UserCommand, success_notreadytologin)
113113
client->set_is_logged(false);
114114

115115
Server server;
116-
117116
server._clients.push_back(*client);
118-
server._handler_client_username("Username", 4);
117+
server._handler_client_username("Username", client->get_fd());
118+
119119
cr_assert(eq(int, server._reply_code, 200));
120120
}

0 commit comments

Comments
 (0)