summaryrefslogtreecommitdiff
path: root/unittests/dmxtest/dmxtestarray.cpp
blob: e9c74686e8263558b03b6904b4084df37c060b2e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Unit test program for DMX testing (testing the Array operations)
//
// $NoKeywords: $
//=============================================================================//

#include "unitlib/unitlib.h"
#include "datamodel/dmelement.h"
#include "datamodel/idatamodel.h"
#include "tier1/utlbuffer.h"
#include "filesystem.h"
#include "datamodel/dmehandle.h"
#include "tier2/tier2.h"
#include "movieobjects/dmeshape.h"


DEFINE_TESTCASE_NOSUITE( DmxArrayTest )
{
	Msg( "Running dmx array tests...\n" );

	CDisableUndoScopeGuard sg;
	DmFileId_t fileid = g_pDataModel->FindOrCreateFileId( "<RunArrayTests>" );

	CDmElement *pElement = CreateElement< CDmElement >( "root", fileid );

	CDmElement *pElement2 = CreateElement<CDmElement>( "element1", fileid );
	Assert( pElement2 );
	CDmElement *pElement3 = CreateElement<CDmElement>( "element2", fileid );
	Assert( pElement3 );
	CDmeShape *pElement4 = CreateElement<CDmeShape>( "shape", fileid );
	Assert( pElement4 );

	CDmrStringArray stringVec( pElement, "string_array_test", true );
	stringVec.AddToTail( "string1" );
	stringVec.AddToTail( "string2" );
	stringVec.AddToTail( "string3" );

	CDmrArray< float > floatVec( pElement, "float_array_test", true );
	floatVec.AddToTail( -1.0f );
	floatVec.AddToTail( 0.0f );
	floatVec.AddToTail( 1.0f );

	CDmrElementArray< > elementVec( pElement, "element_array_test", true );
	elementVec.AddToTail( pElement2 );
	elementVec.AddToTail( pElement3 );
	elementVec.AddToTail( pElement4 );

	CDmrStringArray stringVec2( pElement, "string_array_test2", true );
	stringVec2 = stringVec;
	Shipping_Assert( stringVec2.Count() == 3 );
			 
	CDmrArray< float > floatVec2( pElement, "float_array_test2", true );
	floatVec2 = floatVec;
	Shipping_Assert( floatVec2.Count() == 3 );

	CDmrElementArray< > elementVec2( pElement, "element_array_test2", true );
	elementVec2 = elementVec;
	Shipping_Assert( elementVec2.Count() == 3 );

	CDmrElementArray< CDmeShape > elementVec3( pElement, "element_array_test3", true );
	elementVec3 = elementVec2;
	Shipping_Assert( elementVec3.Count() == 1 );

	CUtlVector<DmElementHandle_t> val;
	val.AddToTail( pElement2->GetHandle() );
	val.AddToTail( pElement4->GetHandle() );

	elementVec2 = val;
	Shipping_Assert( elementVec2.Count() == 2 );

	elementVec3 = val;
	Shipping_Assert( elementVec3.Count() == 1 );

	g_pDataModel->RemoveFileId( fileid );
}