persistentstorage/store/TSTRM/t_storswizzle.cpp
author hgs
Tue, 19 Oct 2010 16:26:13 +0100
changeset 55 44f437012c90
parent 51 7d4490026038
permissions -rw-r--r--
201041_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
7d4490026038 201037_06
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
7d4490026038 201037_06
hgs
parents:
diff changeset
     2
// All rights reserved.
7d4490026038 201037_06
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
7d4490026038 201037_06
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
7d4490026038 201037_06
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
7d4490026038 201037_06
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
7d4490026038 201037_06
hgs
parents:
diff changeset
     7
//
7d4490026038 201037_06
hgs
parents:
diff changeset
     8
// Initial Contributors:
7d4490026038 201037_06
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
7d4490026038 201037_06
hgs
parents:
diff changeset
    10
//
7d4490026038 201037_06
hgs
parents:
diff changeset
    11
// Contributors:
7d4490026038 201037_06
hgs
parents:
diff changeset
    12
//
7d4490026038 201037_06
hgs
parents:
diff changeset
    13
// Description:
7d4490026038 201037_06
hgs
parents:
diff changeset
    14
// 
7d4490026038 201037_06
hgs
parents:
diff changeset
    15
//
7d4490026038 201037_06
hgs
parents:
diff changeset
    16
#include "S32STD.H"
7d4490026038 201037_06
hgs
parents:
diff changeset
    17
#include "S32MEM.H"
7d4490026038 201037_06
hgs
parents:
diff changeset
    18
#include <e32test.h>
7d4490026038 201037_06
hgs
parents:
diff changeset
    19
7d4490026038 201037_06
hgs
parents:
diff changeset
    20
RTest TheTest(_L("t_storswizzle"));
7d4490026038 201037_06
hgs
parents:
diff changeset
    21
7d4490026038 201037_06
hgs
parents:
diff changeset
    22
///////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents:
diff changeset
    23
///////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents:
diff changeset
    24
//Test macros and functions
7d4490026038 201037_06
hgs
parents:
diff changeset
    25
void Check(TInt aValue, TInt aLine)
7d4490026038 201037_06
hgs
parents:
diff changeset
    26
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    27
	if(!aValue)
7d4490026038 201037_06
hgs
parents:
diff changeset
    28
		{
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    29
		TheTest.Printf(_L("*** Expression evaluated to false.\r\n"));
51
7d4490026038 201037_06
hgs
parents:
diff changeset
    30
		TheTest(EFalse, aLine);
7d4490026038 201037_06
hgs
parents:
diff changeset
    31
		}
7d4490026038 201037_06
hgs
parents:
diff changeset
    32
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    33
void Check(TInt aValue, TInt aExpected, TInt aLine)
7d4490026038 201037_06
hgs
parents:
diff changeset
    34
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    35
	if(aValue != aExpected)
7d4490026038 201037_06
hgs
parents:
diff changeset
    36
		{
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    37
		TheTest.Printf(_L("*** Expected error: %d, got: %d.\r\n"), aExpected, aValue);
51
7d4490026038 201037_06
hgs
parents:
diff changeset
    38
		TheTest(EFalse, aLine);
7d4490026038 201037_06
hgs
parents:
diff changeset
    39
		}
7d4490026038 201037_06
hgs
parents:
diff changeset
    40
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    41
#define TEST(arg) ::Check((arg), __LINE__)
7d4490026038 201037_06
hgs
parents:
diff changeset
    42
#define TEST2(aValue, aExpected) ::Check(aValue, aExpected, __LINE__)
7d4490026038 201037_06
hgs
parents:
diff changeset
    43
7d4490026038 201037_06
hgs
parents:
diff changeset
    44
///////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents:
diff changeset
    45
7d4490026038 201037_06
hgs
parents:
diff changeset
    46
class TRectangle
7d4490026038 201037_06
hgs
parents:
diff changeset
    47
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    48
public:
7d4490026038 201037_06
hgs
parents:
diff changeset
    49
	TRectangle();
7d4490026038 201037_06
hgs
parents:
diff changeset
    50
	TRectangle(TInt aWidth, TInt aHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
    51
7d4490026038 201037_06
hgs
parents:
diff changeset
    52
	void ExternalizeL(RWriteStream& aStream) const;
7d4490026038 201037_06
hgs
parents:
diff changeset
    53
	void InternalizeL(RReadStream& aStream);
7d4490026038 201037_06
hgs
parents:
diff changeset
    54
	
7d4490026038 201037_06
hgs
parents:
diff changeset
    55
public:
7d4490026038 201037_06
hgs
parents:
diff changeset
    56
	TInt	iWidth;
7d4490026038 201037_06
hgs
parents:
diff changeset
    57
	TInt	iHeight;
7d4490026038 201037_06
hgs
parents:
diff changeset
    58
	};
7d4490026038 201037_06
hgs
parents:
diff changeset
    59
7d4490026038 201037_06
hgs
parents:
diff changeset
    60
TBool operator==(const TRectangle& aLeft, const TRectangle& aRight)
7d4490026038 201037_06
hgs
parents:
diff changeset
    61
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    62
	return aLeft.iWidth == aRight.iWidth && aLeft.iHeight == aRight.iHeight;
7d4490026038 201037_06
hgs
parents:
diff changeset
    63
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    64
7d4490026038 201037_06
hgs
parents:
diff changeset
    65
TRectangle::TRectangle() :
7d4490026038 201037_06
hgs
parents:
diff changeset
    66
	iWidth(-1),
7d4490026038 201037_06
hgs
parents:
diff changeset
    67
	iHeight(-1)
7d4490026038 201037_06
hgs
parents:
diff changeset
    68
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    69
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    70
7d4490026038 201037_06
hgs
parents:
diff changeset
    71
TRectangle::TRectangle(TInt aWidth, TInt aHeight) :
7d4490026038 201037_06
hgs
parents:
diff changeset
    72
	iWidth(aWidth),
7d4490026038 201037_06
hgs
parents:
diff changeset
    73
	iHeight(aHeight)
7d4490026038 201037_06
hgs
parents:
diff changeset
    74
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    75
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    76
7d4490026038 201037_06
hgs
parents:
diff changeset
    77
void TRectangle::ExternalizeL(RWriteStream& aStream) const
7d4490026038 201037_06
hgs
parents:
diff changeset
    78
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    79
	aStream << (TInt32)iWidth;
7d4490026038 201037_06
hgs
parents:
diff changeset
    80
	aStream << (TInt32)iHeight;
7d4490026038 201037_06
hgs
parents:
diff changeset
    81
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    82
7d4490026038 201037_06
hgs
parents:
diff changeset
    83
void TRectangle::InternalizeL(RReadStream& aStream)
7d4490026038 201037_06
hgs
parents:
diff changeset
    84
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
    85
	TInt32 a;
7d4490026038 201037_06
hgs
parents:
diff changeset
    86
	aStream >> a;
7d4490026038 201037_06
hgs
parents:
diff changeset
    87
	iWidth = a;
7d4490026038 201037_06
hgs
parents:
diff changeset
    88
	aStream >> a;
7d4490026038 201037_06
hgs
parents:
diff changeset
    89
	iHeight = a;
7d4490026038 201037_06
hgs
parents:
diff changeset
    90
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
    91
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    92
class TRectangleExternalizer : public MExternalizer<TRectangle>
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    93
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    94
public:
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    95
	virtual void ExternalizeL(const TRectangle& aObject, RWriteStream& aStream) const;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    96
	};
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    97
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    98
void TRectangleExternalizer::ExternalizeL(const TRectangle& aObject, RWriteStream& aStream) const
44f437012c90 201041_01
hgs
parents: 51
diff changeset
    99
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   100
	aStream << aObject;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   101
	}
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   102
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   103
class TRectangleInternalizer : public MInternalizer<TRectangle>
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   104
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   105
public:
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   106
	virtual void InternalizeL(TRectangle& aObject, RReadStream& aStream) const;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   107
	};
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   108
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   109
void TRectangleInternalizer::InternalizeL(TRectangle& aObject, RReadStream& aStream) const
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   110
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   111
	aStream >> aObject;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   112
	}
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   113
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   114
void RectangleExternalizeL(const TAny* aPtr, RWriteStream& aStream)
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   115
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   116
	TRectangle* rcPtr = (TRectangle*)aPtr;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   117
	rcPtr->ExternalizeL(aStream);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   118
	}
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   119
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   120
class TStreamRefExternalizer : public MExternalizer<TStreamRef>
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   121
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   122
public:
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   123
	virtual void ExternalizeL(const TStreamRef& aObject, RWriteStream& aStream) const;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   124
	};
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   125
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   126
void TStreamRefExternalizer::ExternalizeL(const TStreamRef& aObject, RWriteStream& aStream) const
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   127
	{
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   128
	TExternalizeFunction func = aObject.Function();
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   129
	(*func)(aObject.Ptr(), aStream);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   130
	}
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   131
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   132
///////////////////////////////////////////////////////////////////////////////////////
7d4490026038 201037_06
hgs
parents:
diff changeset
   133
7d4490026038 201037_06
hgs
parents:
diff changeset
   134
/**
7d4490026038 201037_06
hgs
parents:
diff changeset
   135
@SYMTestCaseID          PDS-STORE-CT-4060
7d4490026038 201037_06
hgs
parents:
diff changeset
   136
@SYMTestCaseDesc        TSwizzleC<T> tests.
7d4490026038 201037_06
hgs
parents:
diff changeset
   137
@SYMTestActions         TSwizzleC<T> functionality test. 
7d4490026038 201037_06
hgs
parents:
diff changeset
   138
@SYMTestPriority        High
7d4490026038 201037_06
hgs
parents:
diff changeset
   139
@SYMTestExpectedResults Test must not fail
7d4490026038 201037_06
hgs
parents:
diff changeset
   140
*/
7d4490026038 201037_06
hgs
parents:
diff changeset
   141
void TestSwizzleCL()
7d4490026038 201037_06
hgs
parents:
diff changeset
   142
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
   143
	CBufStore* bufStore = CBufStore::NewLC(100);
7d4490026038 201037_06
hgs
parents:
diff changeset
   144
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   145
	const TInt KWidth = 10;
7d4490026038 201037_06
hgs
parents:
diff changeset
   146
	const TInt KHeight = 20;
7d4490026038 201037_06
hgs
parents:
diff changeset
   147
	TRectangle r1(KWidth, KHeight);
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   148
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   149
	const TInt KWidth2 = 6;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   150
	const TInt KHeight2 = 17;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   151
	TRectangle r2(KWidth2, KHeight2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   152
	
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   153
	const TInt KWidth3 = 19;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   154
	const TInt KHeight3 = 5;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   155
	TRectangle r3(KWidth3, KHeight3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   156
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   157
	const TInt KWidth4 = 22;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   158
	const TInt KHeight4 = 19;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   159
	TRectangle r4(KWidth4, KHeight4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   160
	
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   161
	//Externalize r1 using RStoreWriteStream directly 
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   162
	RStoreWriteStream wstrm1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   163
	TStreamId strmId1 = wstrm1.CreateLC(*bufStore);
7d4490026038 201037_06
hgs
parents:
diff changeset
   164
	TSwizzleC<TRectangle> swizzle1(&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   165
	TEST((const void*)swizzle1 == (const void*)&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   166
	wstrm1 << *swizzle1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   167
	wstrm1.CommitL();
7d4490026038 201037_06
hgs
parents:
diff changeset
   168
	CleanupStack::PopAndDestroy(&wstrm1);
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   169
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   170
	//Externalize r2 using TRectangleExternalizer 
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   171
	RStoreWriteStream wstrm2;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   172
	TStreamId strmId2 = wstrm2.CreateLC(*bufStore);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   173
	TSwizzleC<TRectangle> swizzle2(&r2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   174
	TEST((const void*)swizzle2 == (const void*)&r2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   175
	TRectangleExternalizer rcExternalizer2;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   176
	rcExternalizer2(*swizzle2, wstrm2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   177
	wstrm2.CommitL();
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   178
	CleanupStack::PopAndDestroy(&wstrm2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   179
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   180
	//Externalize r3 using TExternalizer<TRectangle> 
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   181
	RStoreWriteStream wstrm3;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   182
	TStreamId strmId3 = wstrm3.CreateLC(*bufStore);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   183
	TSwizzleC<TRectangle> swizzle3(&r3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   184
	TEST((const void*)swizzle3 == (const void*)&r3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   185
	TExternalizer<TRectangle> rcExternalizer3;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   186
	rcExternalizer3(*swizzle3, wstrm3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   187
	wstrm3.CommitL();
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   188
	CleanupStack::PopAndDestroy(&wstrm3);
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   189
	
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   190
	//Externalize r4 using TSwizzleC::ExternalizeL()
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   191
	TStreamRefExternalizer rcExternalizer4;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   192
	RStoreWriteStream wstrm4(rcExternalizer4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   193
	TStreamId strmId4 = wstrm4.CreateLC(*bufStore);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   194
	TSwizzleC<TRectangle> swizzle4(&r4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   195
	TEST((const void*)swizzle4 == (const void*)&r4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   196
	swizzle4.ExternalizeL(wstrm4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   197
	wstrm4.CommitL();
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   198
	CleanupStack::PopAndDestroy(&wstrm4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   199
	
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   200
	//Internalize r1 using RStoreReadStream directly 
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   201
	TRectangle r1in;
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   202
	RStoreReadStream rstrm1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   203
	rstrm1.OpenLC(*bufStore, strmId1);
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   204
	rstrm1 >> r1in;
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   205
	CleanupStack::PopAndDestroy(&rstrm1);
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   206
	TEST(r1 == r1in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   207
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   208
	//Internalize r2 using TRectangleInternalizer
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   209
	TRectangle r2in;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   210
	TSwizzle<TRectangle> swizzle2in(&r2in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   211
	RStoreReadStream rstrm2;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   212
	rstrm2.OpenLC(*bufStore, strmId2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   213
	TRectangleInternalizer rcInternalizer2;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   214
	rcInternalizer2(*swizzle2in, rstrm2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   215
	CleanupStack::PopAndDestroy(&rstrm2);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   216
	TEST(r2 == r2in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   217
	TEST(*swizzle2 == *swizzle2in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   218
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   219
	//Internalize r3 using TInternalizer<TRectangle>
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   220
	TRectangle r3in;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   221
	TSwizzle<TRectangle> swizzle3in(&r3in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   222
	RStoreReadStream rstrm3;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   223
	rstrm3.OpenLC(*bufStore, strmId3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   224
	TInternalizer<TRectangle> rcInternalizer3;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   225
	rcInternalizer3(*swizzle3in, rstrm3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   226
	CleanupStack::PopAndDestroy(&rstrm3);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   227
	TEST(r3 == r3in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   228
	TEST(*swizzle3 == *swizzle3in);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   229
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   230
	//Internalize r4
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   231
	TSwizzle<TRectangle> swizzle4in(strmId4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   232
	TEST(swizzle4in.IsId());
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   233
	RStoreReadStream rstrm4;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   234
	rstrm4.OpenLC(*bufStore, swizzle4in.AsId());
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   235
	TRectangle r4in;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   236
	rstrm4 >> r4in;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   237
	CleanupStack::PopAndDestroy(&rstrm4);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   238
	TEST(r4 == r4in);
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   239
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   240
	CleanupStack::PopAndDestroy(bufStore);
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   241
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   242
	//TSwizzleC copy constructor test
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   243
	TSwizzleC<TRectangle> swizzle1copy(swizzle1);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   244
	TEST(swizzle1->iWidth == swizzle1copy->iWidth);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   245
	TEST(swizzle1->iHeight == swizzle1copy->iHeight);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   246
	TEST(swizzle1.AsPtr()->iHeight == swizzle1copy.AsPtr()->iHeight);
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   247
55
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   248
	//TSwizzleC assignment operator test
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   249
	TSwizzleC<TRectangle> swizzle1assign;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   250
	swizzle1assign = &r1in;
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   251
	TEST(swizzle1->iWidth == swizzle1assign->iWidth);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   252
	TEST(swizzle1->iHeight == swizzle1assign->iHeight);
44f437012c90 201041_01
hgs
parents: 51
diff changeset
   253
	TEST(swizzle1.AsPtr()->iHeight == swizzle1assign.AsPtr()->iHeight);
51
7d4490026038 201037_06
hgs
parents:
diff changeset
   254
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
   255
7d4490026038 201037_06
hgs
parents:
diff changeset
   256
/**
7d4490026038 201037_06
hgs
parents:
diff changeset
   257
@SYMTestCaseID          PDS-STORE-CT-4061
7d4490026038 201037_06
hgs
parents:
diff changeset
   258
@SYMTestCaseDesc        TSwizzleC<TAny> tests.
7d4490026038 201037_06
hgs
parents:
diff changeset
   259
@SYMTestActions         TSwizzleC<TAny> functionality test. 
7d4490026038 201037_06
hgs
parents:
diff changeset
   260
@SYMTestPriority        High
7d4490026038 201037_06
hgs
parents:
diff changeset
   261
@SYMTestExpectedResults Test must not fail
7d4490026038 201037_06
hgs
parents:
diff changeset
   262
*/
7d4490026038 201037_06
hgs
parents:
diff changeset
   263
void TestSwizzleCAny()
7d4490026038 201037_06
hgs
parents:
diff changeset
   264
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
   265
	const TInt KWidth = 10;
7d4490026038 201037_06
hgs
parents:
diff changeset
   266
	const TInt KHeight = 20;
7d4490026038 201037_06
hgs
parents:
diff changeset
   267
	TRectangle r1(KWidth, KHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   268
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   269
	TSwizzleC<TAny> swizzle1(&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   270
	TSwizzleC<TAny> swizzle2(&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   271
	TSwizzleC<TAny> swizzle3;
7d4490026038 201037_06
hgs
parents:
diff changeset
   272
	swizzle3 = &r1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   273
	TEST((const void*)swizzle3 == (const void*)&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   274
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   275
	TSwizzleCBase b1 = swizzle1; 
7d4490026038 201037_06
hgs
parents:
diff changeset
   276
	TSwizzleCBase b2 = swizzle2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   277
	TBool rc = b1 == b2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   278
	TEST(rc);
7d4490026038 201037_06
hgs
parents:
diff changeset
   279
	rc = b1 != b2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   280
	TEST(!rc);
7d4490026038 201037_06
hgs
parents:
diff changeset
   281
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   282
	TSwizzleC<TAny> swizzle4(b1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   283
	TEST(swizzle4.AsPtr() == swizzle1.AsPtr());
7d4490026038 201037_06
hgs
parents:
diff changeset
   284
7d4490026038 201037_06
hgs
parents:
diff changeset
   285
	const void* p1 = swizzle1.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   286
	const void* p2 = swizzle2.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   287
	const void* p3 = swizzle3.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   288
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   289
	TEST(((const TRectangle*)p1)->iWidth == ((const TRectangle*)p2)->iWidth);
7d4490026038 201037_06
hgs
parents:
diff changeset
   290
	TEST(((const TRectangle*)p1)->iHeight == ((const TRectangle*)p2)->iHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   291
	TEST(((const TRectangle*)p3)->iWidth == ((const TRectangle*)p2)->iWidth);
7d4490026038 201037_06
hgs
parents:
diff changeset
   292
	TEST(((const TRectangle*)p3)->iHeight == ((const TRectangle*)p2)->iHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   293
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
   294
7d4490026038 201037_06
hgs
parents:
diff changeset
   295
/**
7d4490026038 201037_06
hgs
parents:
diff changeset
   296
@SYMTestCaseID          PDS-STORE-CT-4062
7d4490026038 201037_06
hgs
parents:
diff changeset
   297
@SYMTestCaseDesc        TSwizzle<TAny> tests.
7d4490026038 201037_06
hgs
parents:
diff changeset
   298
@SYMTestActions         TSwizzle<TAny> functionality test. 
7d4490026038 201037_06
hgs
parents:
diff changeset
   299
@SYMTestPriority        High
7d4490026038 201037_06
hgs
parents:
diff changeset
   300
@SYMTestExpectedResults Test must not fail
7d4490026038 201037_06
hgs
parents:
diff changeset
   301
*/
7d4490026038 201037_06
hgs
parents:
diff changeset
   302
void TestSwizzleAny()
7d4490026038 201037_06
hgs
parents:
diff changeset
   303
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
   304
	const TInt KWidth = 10;
7d4490026038 201037_06
hgs
parents:
diff changeset
   305
	const TInt KHeight = 20;
7d4490026038 201037_06
hgs
parents:
diff changeset
   306
	TRectangle r1(KWidth, KHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   307
		
7d4490026038 201037_06
hgs
parents:
diff changeset
   308
	TSwizzle<TAny> swizzle1(&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   309
	TSwizzle<TAny> swizzle2(&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   310
	TSwizzle<TAny> swizzle3;
7d4490026038 201037_06
hgs
parents:
diff changeset
   311
	swizzle3 = &r1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   312
	TEST((void*)swizzle3 == (void*)&r1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   313
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   314
	TSwizzleBase b1 = swizzle1; 
7d4490026038 201037_06
hgs
parents:
diff changeset
   315
	TSwizzleBase b2 = swizzle2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   316
	TBool rc = b1 == b2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   317
	TEST(rc);
7d4490026038 201037_06
hgs
parents:
diff changeset
   318
	rc = b1 != b2;
7d4490026038 201037_06
hgs
parents:
diff changeset
   319
	TEST(!rc);
7d4490026038 201037_06
hgs
parents:
diff changeset
   320
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   321
	TSwizzle<TAny> swizzle4(b1);
7d4490026038 201037_06
hgs
parents:
diff changeset
   322
	TEST(swizzle4.AsPtr() == swizzle1.AsPtr());
7d4490026038 201037_06
hgs
parents:
diff changeset
   323
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   324
	void* p1 = swizzle1.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   325
	void* p2 = swizzle2.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   326
	void* p3 = swizzle3.AsPtr();
7d4490026038 201037_06
hgs
parents:
diff changeset
   327
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   328
	TEST(((TRectangle*)p1)->iWidth == ((TRectangle*)p2)->iWidth);
7d4490026038 201037_06
hgs
parents:
diff changeset
   329
	TEST(((TRectangle*)p1)->iHeight == ((TRectangle*)p2)->iHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   330
	TEST(((TRectangle*)p3)->iWidth == ((TRectangle*)p2)->iWidth);
7d4490026038 201037_06
hgs
parents:
diff changeset
   331
	TEST(((TRectangle*)p3)->iHeight == ((TRectangle*)p2)->iHeight);
7d4490026038 201037_06
hgs
parents:
diff changeset
   332
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   333
	((TRectangle*)p3)->iWidth = 5;
7d4490026038 201037_06
hgs
parents:
diff changeset
   334
	((TRectangle*)p3)->iHeight = 3;
7d4490026038 201037_06
hgs
parents:
diff changeset
   335
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   336
	TEST2(r1.iWidth, 5);
7d4490026038 201037_06
hgs
parents:
diff changeset
   337
	TEST2(r1.iHeight, 3);
7d4490026038 201037_06
hgs
parents:
diff changeset
   338
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   339
	TSwizzle<TRectangle> swizzle5;
7d4490026038 201037_06
hgs
parents:
diff changeset
   340
	swizzle5 = &r1;
7d4490026038 201037_06
hgs
parents:
diff changeset
   341
	TEST2(swizzle5->iWidth, 5);
7d4490026038 201037_06
hgs
parents:
diff changeset
   342
	TEST2(swizzle5->iHeight, 3);
7d4490026038 201037_06
hgs
parents:
diff changeset
   343
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
   344
7d4490026038 201037_06
hgs
parents:
diff changeset
   345
void DoTestsL()
7d4490026038 201037_06
hgs
parents:
diff changeset
   346
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
   347
	TheTest.Start(_L("@SYMTestCaseID:PDS-STORE-CT-4060: TSwizzleC<T> test"));
7d4490026038 201037_06
hgs
parents:
diff changeset
   348
	TestSwizzleCL();
7d4490026038 201037_06
hgs
parents:
diff changeset
   349
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   350
	TheTest.Next(_L("@SYMTestCaseID:PDS-STORE-CT-4061: TSwizzleC<TAny> test"));
7d4490026038 201037_06
hgs
parents:
diff changeset
   351
	TestSwizzleCAny();
7d4490026038 201037_06
hgs
parents:
diff changeset
   352
	
7d4490026038 201037_06
hgs
parents:
diff changeset
   353
	TheTest.Next(_L("@SYMTestCaseID:PDS-STORE-CT-4062: TSwizzle<TAny> test"));
7d4490026038 201037_06
hgs
parents:
diff changeset
   354
	TestSwizzleAny();
7d4490026038 201037_06
hgs
parents:
diff changeset
   355
	}
7d4490026038 201037_06
hgs
parents:
diff changeset
   356
7d4490026038 201037_06
hgs
parents:
diff changeset
   357
TInt E32Main()
7d4490026038 201037_06
hgs
parents:
diff changeset
   358
	{
7d4490026038 201037_06
hgs
parents:
diff changeset
   359
	TheTest.Title();
7d4490026038 201037_06
hgs
parents:
diff changeset
   360
7d4490026038 201037_06
hgs
parents:
diff changeset
   361
	CTrapCleanup* tc = CTrapCleanup::New();
7d4490026038 201037_06
hgs
parents:
diff changeset
   362
	TheTest(tc != NULL);
7d4490026038 201037_06
hgs
parents:
diff changeset
   363
7d4490026038 201037_06
hgs
parents:
diff changeset
   364
	__UHEAP_MARK;
7d4490026038 201037_06
hgs
parents:
diff changeset
   365
7d4490026038 201037_06
hgs
parents:
diff changeset
   366
	TRAPD(err, DoTestsL());
7d4490026038 201037_06
hgs
parents:
diff changeset
   367
	TEST2(err, KErrNone);
7d4490026038 201037_06
hgs
parents:
diff changeset
   368
7d4490026038 201037_06
hgs
parents:
diff changeset
   369
	__UHEAP_MARKEND;
7d4490026038 201037_06
hgs
parents:
diff changeset
   370
7d4490026038 201037_06
hgs
parents:
diff changeset
   371
	TheTest.End();
7d4490026038 201037_06
hgs
parents:
diff changeset
   372
	TheTest.Close();
7d4490026038 201037_06
hgs
parents:
diff changeset
   373
7d4490026038 201037_06
hgs
parents:
diff changeset
   374
	delete tc;
7d4490026038 201037_06
hgs
parents:
diff changeset
   375
7d4490026038 201037_06
hgs
parents:
diff changeset
   376
	User::Heap().Check();
7d4490026038 201037_06
hgs
parents:
diff changeset
   377
	return KErrNone;
7d4490026038 201037_06
hgs
parents:
diff changeset
   378
	}