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
|
#include "vendor/unity/src/unity.h"
#include "../src/c/fastforge_csv.h"
#include <string.h>
void test_csv_append_text_plain_and_escaped_values(void) {
char buffer[128];
size_t offset;
buffer[0] = '\0';
offset = csv_append_text(buffer, sizeof(buffer), 0, "plain");
TEST_ASSERT_EQUAL_size_t(strlen("plain"), offset);
TEST_ASSERT_EQUAL_STRING("plain", buffer);
buffer[0] = '\0';
offset = csv_append_text(buffer, sizeof(buffer), 0, "alpha,beta");
TEST_ASSERT_EQUAL_STRING("\"alpha,beta\"", buffer);
TEST_ASSERT_EQUAL_size_t(strlen("\"alpha,beta\""), offset);
buffer[0] = '\0';
offset = csv_append_text(buffer, sizeof(buffer), 0, "say \"hi\"");
TEST_ASSERT_EQUAL_STRING("\"say \"\"hi\"\"\"", buffer);
TEST_ASSERT_EQUAL_size_t(strlen("\"say \"\"hi\"\"\""), offset);
strcpy(buffer, "seed");
offset = csv_append_text(buffer, sizeof(buffer), 4, NULL);
TEST_ASSERT_EQUAL_size_t(4, offset);
TEST_ASSERT_EQUAL_STRING("seed", buffer);
}
void test_csv_append_int_appends_number_text(void) {
char buffer[64];
size_t offset;
buffer[0] = '\0';
offset = csv_append_int(buffer, sizeof(buffer), 0, -42);
TEST_ASSERT_EQUAL_size_t(strlen("-42"), offset);
TEST_ASSERT_EQUAL_STRING("-42", buffer);
}
void test_format_history_csv_header_and_row_with_escaping(void) {
FastEntry entry;
char row[256];
char header[128];
memset(&entry, 0, sizeof(entry));
entry.start_time = 100;
entry.end_time = 200;
entry.target_minutes = 960;
entry.max_stage_reached = 2;
snprintf(entry.note, sizeof(entry.note), "meal, \"keto\"");
format_history_csv_header(header, sizeof(header));
TEST_ASSERT_EQUAL_STRING(
"start_time,end_time,target_minutes,note,max_stage_reached",
header);
format_history_csv_row(&entry, row, sizeof(row));
TEST_ASSERT_EQUAL_STRING("100,200,960,\"meal, \"\"keto\"\"\",2", row);
}
void test_format_history_csv_row_null_entry_returns_empty(void) {
char row[32];
strcpy(row, "not-empty");
format_history_csv_row(NULL, row, sizeof(row));
TEST_ASSERT_EQUAL_STRING("", row);
}
|