//
// sc_Field_t.cpp
//
// $Id: sc_Field_t.cpp,v 1.6 2002/11/27 00:21:34 mcoletti Exp $
//
// TODO:
//
// We should add checks for _all_ get*() and set*() members, not just a
// sampling.
//
#include <cassert>
#include <iostream>
using namespace std;
#include <sdts++/container/sc_Field.h>
int
main( int argc, char** argv )
{
sc_Field f;
unsigned long ulong_val;
string string_val;
// name and mnemonic should start out null
assert( "" == f.getName() );
assert( "" == f.getMnemonic() );
f.setName( "Blah blah" );
f.setMnemonic( "FOO" );
assert( "Blah blah" == f.getName() );
assert( "FOO" == f.getMnemonic() );
assert( f.empty() ); // also should start out with no subfields
// insert a subfield and insure it behaves ok
f.push_back( sc_Subfield() );
assert( ! f.empty() );
f.back().setA( "BAZ" );
assert( f.back().getA( string_val ) );
assert( "BAZ" == string_val );
// copy ctor test
{
sc_Field local_f( f );
string my_val;
assert( local_f.back().getA( my_val ) );
assert( "BAZ" == my_val );
assert( ! local_f.back().getBUI8( ulong_val ) );
}
// assignment operator test
{
sc_Field local_f;
string my_val;
local_f = f;
assert( local_f.back().getA( my_val ) );
assert( "BAZ" == my_val );
assert( ! local_f.back().getBUI8( ulong_val ) );
}
// null reset test
f.back().setUnvalued();
assert( ! f.back().getA( string_val ) );
f.clear();
assert( f.empty() );
exit( 0 );
}
syntax highlighted by Code2HTML, v. 0.9.1