1 //
2 // sc_Field_t.cpp
3 //
4 // $Id: sc_Field_t.cpp,v 1.6 2002/11/27 00:21:34 mcoletti Exp $
5 //
6 // TODO:
7 //
8 //   We should add checks for _all_ get*() and set*() members, not just a
9 //   sampling.
10 //
11 
12 #include <cassert>
13 #include <iostream>
14 
15 
16 using namespace std;
17 
18 
19 #include <sdts++/container/sc_Field.h>
20 
21 
22 int
main(int argc,char ** argv)23 main( int argc, char** argv )
24 {
25 
26   sc_Field f;
27 
28   unsigned long ulong_val;
29   string        string_val;
30 
31 
32 				// name and mnemonic should start out null
33 
34   assert( "" == f.getName() );
35   assert( "" == f.getMnemonic() );
36 
37   f.setName( "Blah blah" );
38   f.setMnemonic( "FOO" );
39 
40   assert( "Blah blah" == f.getName() );
41   assert( "FOO" == f.getMnemonic() );
42 
43   assert( f.empty() );		// also should start out with no subfields
44 
45 
46 				// insert a subfield and insure it behaves ok
47 
48   f.push_back( sc_Subfield() );
49 
50   assert( ! f.empty() );
51 
52 
53   f.back().setA( "BAZ" );
54 
55   assert( f.back().getA( string_val ) );
56 
57   assert( "BAZ" == string_val );
58 
59 
60 
61   // copy ctor test
62 
63   {
64     sc_Field local_f( f );
65     string my_val;
66 
67     assert( local_f.back().getA( my_val ) );
68 
69     assert( "BAZ" == my_val );
70 
71     assert( ! local_f.back().getBUI8( ulong_val ) );
72   }
73 
74 
75   // assignment operator test
76 
77   {
78     sc_Field local_f;
79     string my_val;
80 
81     local_f = f;
82 
83     assert( local_f.back().getA( my_val ) );
84 
85     assert( "BAZ" == my_val );
86 
87     assert( ! local_f.back().getBUI8( ulong_val ) );
88   }
89 
90 
91   // null reset test
92 
93   f.back().setUnvalued();
94 
95   assert( ! f.back().getA( string_val ) );
96 
97 
98   f.clear();
99 
100   assert( f.empty() );
101 
102   exit( 0 );
103 }
104