< Summary - Backend C Tests - Coverage Report

Information
Class: test_fault_handler_c
Assembly: src.backend.tests.unit
File(s): C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\tests\unit\test_fault_handler.c
Line coverage
100%
Covered lines: 69
Uncovered lines: 0
Coverable lines: 69
Total lines: 83
Line coverage: 100%
Branch coverage
50%
Covered branches: 12
Total branches: 24
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
test_fault_get_all50%00100%
test_fault_get_single50%00100%
test_fault_post50%00100%
test_fault_put_ack50%00100%
test_fault_put_resolve50%00100%
test_fault_put_invalid50%00100%
test_fault_invalid_method50%00100%
main100%00100%

File(s)

C:\Users\yagiz\Desktop\Project\smart-maintenance-suite\src\backend\tests\unit\test_fault_handler.c

#LineLine coverage
 1#include "../../api/handlers/fault_handler.h"
 2#include "../../api/http_server.h"
 3#include <assert.h>
 4#include <string.h>
 5#include <stdio.h>
 6
 17void test_fault_get_all() {
 18  HttpRequest req = {0};
 19  HttpResponse res = {0};
 110  strcpy(req.method, "GET");
 111  strcpy(req.path, "/api/faults");
 112  handle_fault_request(&req, &res);
 113  assert(res.status_code == 200);
 114  assert(strstr(res.body, "faults") != NULL);
 115}
 16
 117void test_fault_get_single() {
 118  HttpRequest req = {0};
 119  HttpResponse res = {0};
 120  strcpy(req.method, "GET");
 121  strcpy(req.path, "/api/faults/1");
 122  handle_fault_request(&req, &res);
 123  assert(res.status_code == 200);
 124  assert(strstr(res.body, "CNC Machine") != NULL);
 125}
 26
 127void test_fault_post() {
 128  HttpRequest req = {0};
 129  HttpResponse res = {0};
 130  strcpy(req.method, "POST");
 131  handle_fault_request(&req, &res);
 132  assert(res.status_code == 201);
 133}
 34
 135void test_fault_put_ack() {
 136  HttpRequest req = {0};
 137  HttpResponse res = {0};
 138  strcpy(req.method, "PUT");
 139  strcpy(req.path, "/api/faults/1/acknowledge");
 140  handle_fault_request(&req, &res);
 141  assert(res.status_code == 200);
 142  assert(strstr(res.body, "acknowledged") != NULL);
 143}
 44
 145void test_fault_put_resolve() {
 146  HttpRequest req = {0};
 147  HttpResponse res = {0};
 148  strcpy(req.method, "PUT");
 149  strcpy(req.path, "/api/faults/1/resolve");
 150  handle_fault_request(&req, &res);
 151  assert(res.status_code == 200);
 152  assert(strstr(res.body, "resolved") != NULL);
 153}
 54
 155void test_fault_put_invalid() {
 156  HttpRequest req = {0};
 157  HttpResponse res = {0};
 158  strcpy(req.method, "PUT");
 159  strcpy(req.path, "/api/faults/1/invalid");
 160  handle_fault_request(&req, &res);
 161  assert(res.status_code == 400);
 162  assert(strstr(res.body, "Invalid fault operation") != NULL);
 163}
 64
 165void test_fault_invalid_method() {
 166  HttpRequest req = {0};
 167  HttpResponse res = {0};
 168  strcpy(req.method, "DELETE");
 169  handle_fault_request(&req, &res);
 170  assert(res.status_code == 405);
 171}
 72
 173int main() {
 174  test_fault_get_all();
 175  test_fault_get_single();
 176  test_fault_post();
 177  test_fault_put_ack();
 178  test_fault_put_resolve();
 179  test_fault_put_invalid();
 180  test_fault_invalid_method();
 181  printf("[PASS] Fault handler\n");
 182  return 0;
 83}