/* Listing 8*/
/***********************************************************
  Testlist.c - Program to test the list object using a phone
  list as an example.
***********************************************************/
#include "phlist2.h"

static PHONE_ENTRY test_data[] = {
{"Able","Ben","456-7890"},{"Smith","John","456-0987"},
{"Kirk","Jim","622-1701"},{"Picard","Jon L.","622-1701"},
{"Jones","Cyrano","874-2253"}
};

static PHONE_ENTRY jane = {"Smith","Jane","123/456-0987"};

main()
{
    PHONE_LIST *pe;
    int x;

    pe = new_phone_list();
    for (x = 0; x < 5; ++x)
        pe->add_member(pe,&test_data[x]);
    printf("\nTesting Phone List:\n");
    pe->top(pe);

    while( ! pe->at_end(pe) ) {
       pe->display(pe); pe->next(pe);
    }
    printf("\n Finding - Kirk \n");
    pe->top(pe);
    if (pe->find(pe,"Kirk") == TRUE)
        pe->display(pe);
    printf("\n Trying to find McCoy \n");
    if (pe->find(pe,"McCoy") == FALSE)
        printf("\nMcCoy not found\n");
    printf("Current Member is :\n");
    pe->display(pe);
    printf("Replace John Smith with Jane\n");
    pe->top(pe);
    if (pe->find(pe,"Smith") == TRUE) {
	pe->replace_member(pe,&jane);
    }
    else {
        printf("Not Found (Strike a Key)\n"); getch();
    }
    printf("\nRedisplaying phone list:\n");
    pe->top(pe);
    while( ! pe->at_end(pe) ) {
       pe->display(pe);  pe->next(pe);
    }
    pe->end(pe);
    printf("Total members = %ld\n",pe->total_members(pe));
    printf("Current member = %ld\n",pe->tell(pe));
}
