| #include "util_hash_test.h" |
| #include "axis2_string.h" |
| typedef struct a |
| { |
| char *value; |
| } a; |
| |
| void Testaxis2_hash_get(CuTest *tc) |
| { |
| printf("testing axis2_hash_get\n"); |
| axis2_allocator_t *allocator = axis2_allocator_init (NULL); |
| axis2_env_t *environment = |
| axis2_env_create (allocator); |
| |
| axis2_hash_t *ht; |
| a *actual, *expected; |
| |
| axis2_hash_index_t *i = 0; |
| void *v = NULL; |
| |
| char *key1 = "key1"; |
| |
| actual = (a *) AXIS2_MALLOC(environment->allocator, sizeof (a)); |
| |
| |
| actual->value = AXIS2_STRDUP("value1", &environment); |
| |
| |
| ht = axis2_hash_make (&environment); |
| |
| axis2_hash_set (ht, key1, AXIS2_HASH_KEY_STRING, actual); |
| |
| for (i = axis2_hash_first (ht, &environment); i; i = axis2_hash_next (&environment, i)) |
| { |
| |
| axis2_hash_this (i, NULL, NULL, &v); |
| |
| } |
| |
| expected = (a *) axis2_hash_get (ht, key1, AXIS2_HASH_KEY_STRING); |
| CuAssertStrEquals(tc, expected->value, actual->value); |
| } |
| |
| void Testaxis2_hash_while(CuTest *tc) |
| { |
| axis2_allocator_t *allocator = axis2_allocator_init (NULL); |
| axis2_env_t *environment = |
| axis2_env_create (allocator); |
| |
| axis2_hash_t *ht; |
| a *actual = NULL; |
| a *expected = NULL; |
| a *entry1 = NULL; |
| a *entry2 = NULL; |
| a *entry3 = NULL; |
| |
| axis2_hash_index_t *index_i= 0; |
| void *v = NULL; |
| void *k = NULL; |
| |
| char *key = NULL; |
| char *key1 = "key1"; |
| char *key2 = "key2"; |
| char *key3 = "key3"; |
| |
| entry1 = (a *) AXIS2_MALLOC(environment->allocator, sizeof (a)); |
| entry2 = (a *) AXIS2_MALLOC(environment->allocator, sizeof (a)); |
| entry3 = (a *) AXIS2_MALLOC(environment->allocator, sizeof (a)); |
| |
| expected = (a *) AXIS2_MALLOC(environment->allocator, sizeof (a)); |
| expected->value = AXIS2_STRDUP("value2", &environment); |
| |
| entry1->value = AXIS2_STRDUP("value1", &environment); |
| |
| ht = axis2_hash_make (&environment); |
| |
| axis2_hash_set (ht, key1, AXIS2_HASH_KEY_STRING, entry1); |
| |
| entry2->value = AXIS2_STRDUP("value2", &environment); |
| |
| axis2_hash_set (ht, key2, AXIS2_HASH_KEY_STRING, entry2); |
| |
| entry3->value = AXIS2_STRDUP("value3", &environment); |
| |
| axis2_hash_set (ht, key3, AXIS2_HASH_KEY_STRING, entry3); |
| |
| index_i = axis2_hash_first (ht, &environment); |
| do |
| { |
| axis2_hash_this (index_i, &k, NULL, &v); |
| key = (char *) k; |
| if(0 == AXIS2_STRCMP(key, "key2")) |
| { |
| actual = (a *) v; |
| break; |
| } |
| index_i = axis2_hash_next (&environment, index_i); |
| }while(NULL != index_i); |
| printf("actual:%s\n", actual->value); |
| CuAssertStrEquals(tc, expected->value, actual->value); |
| free(expected->value); |
| free(expected); |
| |
| free(entry1->value); |
| free(entry1); |
| free(entry3->value); |
| free(entry3); |
| free(entry2->value); |
| free(entry2); |
| axis2_hash_free(ht, &environment); |
| |
| |
| |
| |
| |
| |
| |
| |
| } |