Пример #1
0
static bool param_compose_test(ot_op* op1, ot_op* op2, ot_op* expected,
                               char** msg) {
    ot_op* actual = ot_compose(op1, op2);
    ot_free_op(op1);
    ot_free_op(op2);

    if (actual == NULL) {
        if (expected == NULL) {
            return true;
        } else {
            FAIL("Operations couldn't be composed.", msg);
        }
    }
    bool equal = ot_equal(expected, actual);
    char* expected_enc = ot_encode(expected);
    char* actual_enc = ot_encode(actual);
    ASSERT_CONDITION(equal, expected_enc, actual_enc,
                     "Composed operation wasn't correct.", msg);

    ot_free_op(expected);
    ot_free_op(actual);
    free(expected_enc);
    free(actual_enc);
    return true;
}
Пример #2
0
static bool server_receive_fires_event_when_xform_error_occurs(char** msg) {
    ot_op* initial_op = ot_new_op();
    ot_insert(initial_op, "abc");

    ot_doc* doc = ot_new_doc();
    ot_doc_append(doc, &initial_op);

    ot_server* server = ot_new_server(send, event);
    ot_server_open(server, doc);

    ot_op* invalid_op = ot_new_op();
    ot_skip(invalid_op, 1);

    char* invalid_op_enc = ot_encode(invalid_op);
    ot_server_receive(server, invalid_op_enc);

    ot_op* dec = ot_new_op();
    ot_err err = ot_decode(dec, sent_msg);
    ASSERT_INT_EQUAL(OT_ERR_XFORM_FAILED, err, "Sent error was incorrect.",
                     msg);

    ot_free_op(dec);
    ot_free_op(invalid_op);
    ot_free_server(server);
    free(invalid_op_enc);
    return true;
}
Пример #3
0
static bool server_receive_fires_event_when_parent_cannot_be_found(char** msg) {
    ot_op* initial_op = ot_new_op();
    ot_insert(initial_op, "abc");

    ot_doc* doc = ot_new_doc();
    ot_doc_append(doc, &initial_op);

    ot_server* server = ot_new_server(send, event);
    ot_server_open(server, doc);

    const int NONEMPTY_HASH = 0xFF;
    ot_op* invalid_op = ot_new_op();
    ot_insert(invalid_op, "abc");
    memset(invalid_op->parent, NONEMPTY_HASH, 20);

    char* invalid_op_enc = ot_encode(invalid_op);
    ot_server_receive(server, invalid_op_enc);

    ot_op* dec = ot_new_op();
    ot_err err = ot_decode(dec, sent_msg);
    ASSERT_INT_EQUAL(OT_ERR_XFORM_FAILED, err, "Sent error was incorrect.",
                     msg);

    ot_free_op(dec);
    ot_free_op(invalid_op);
    ot_free_server(server);
    free(invalid_op_enc);
    return true;
}
Пример #4
0
static bool server_receive_when_empty_doc_is_opened(char** msg) {
    ot_server* server = ot_new_server(send, event);
    ot_doc* doc = ot_new_doc();
    ot_server_open(server, doc);

    ot_op* op = ot_new_op();
    ot_insert(op, "abc");

    char* op_enc = ot_encode(op);
    ot_server_receive(server, op_enc);

    ot_op* dec = ot_new_op();
    ot_err err = ot_decode(dec, sent_msg);
    ASSERT_INT_EQUAL(OT_ERR_NONE, err, "Unexpected sent error.", msg);
    ASSERT_OP_EQUAL(op, server->doc->composed, "Document state was incorrect.",
                    msg);

    ot_free_op(dec);
    ot_free_op(op);
    ot_free_server(server);
    free(op_enc);
    return true;
}