blob: ea34794feae173dd4259f9974e0cf1c9c256f47a (
plain)
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
|
#include "web.h"
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
struct App app = { .dbname = "file::memory:?cache=shared" };
prepare_database(&app);
struct Server server = { .app = &app };
struct Request request = { .server = &server };
// Insert 17 clients using create_client
for (int i = 1; i <= 17; i++) {
char name[32];
snprintf(name, sizeof(name), "client%d", i);
struct CreateClientResult cr;
create_client(&request, name, &cr);
}
// Call list_clients
struct ListClientResult *result = malloc(sizeof(*result) + 16 * sizeof(struct ListClientResultClient));
list_clients(&request, result);
// Verify: exactly 16 returned, correct order and names
assert(result->clients_len == 16);
for (int i = 0; i < 16; i++) {
assert(result->clients[i].id == i + 1);
char expected[32];
snprintf(expected, sizeof(expected), "client%d", i + 1);
assert(strcmp(result->clients[i].name, expected) == 0);
}
free(result);
printf("list_clients test passed\n");
return 0;
}
|