--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/radioapp/radiopresetstorage/tsrc/src/t_radiopresetstorage.cpp Tue Aug 31 15:15:02 2010 +0300
@@ -0,0 +1,225 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include "t_radiopresetstorage.h"
+#include "radiopresetstorage.h"
+#include "radiostation.h"
+#include "radiostation_p.h"
+
+// Constants
+const uint KTestFrequency1 = 89000000;
+const uint KTestFrequency2 = 89500000;
+const uint KTestFrequency3 = 90000000;
+const uint KTestFrequency4 = 90500000;
+const uint KMaxNumberOfPresets = 100;
+const uint KInvalidPresetIndex = -2;
+const uint KFirstPresetIndex = 0;
+const uint KSecondPresetIndex = 1;
+const uint KThirdPresetIndex = 2;
+const uint KFrequencyStep = 100000;
+
+/*!
+ *
+ */
+int main(int /* argc*/, char *argv[])
+{
+ TestRadioPresetStorage tv;
+
+ char *pass[3];
+ pass[0] = argv[0];
+ pass[1] = "-o";
+ pass[2] = "c:\\data\\testradiopresetstorage.txt";
+
+ int res = QTest::qExec(&tv, 3, pass);
+
+ return res;
+}
+
+
+TestRadioPresetStorage::TestRadioPresetStorage()
+{
+}
+
+
+/*!
+ * Destructor
+ */
+TestRadioPresetStorage::~TestRadioPresetStorage()
+{
+}
+
+/*!
+ * called before each testfunction is executed
+ */
+void TestRadioPresetStorage::init()
+{
+}
+
+/*!
+ * called after every testfunction
+ */
+void TestRadioPresetStorage::cleanup()
+{
+}
+
+/*!
+ * called before the first testfunction is executed
+ */
+void TestRadioPresetStorage::initTestCase()
+{
+ mPresetStorage.reset( new RadioPresetStorage() );
+ // this is the range used in this test module
+ for(int i = 0; i <= mPresetStorage->maxNumberOfPresets(); i++)
+ {
+ mPresetStorage->deletePreset( i );
+ }
+ QVERIFY2(( mPresetStorage->presetCount() == 0 ), "API:RadioPresetStorage initTestCase 1");
+ // TODO: replace the local constant with the constand defined in preset utility header
+ QVERIFY2(( mPresetStorage->maxNumberOfPresets() == KMaxNumberOfPresets ), "API:RadioPresetStorage initTestCase 2");
+}
+
+/*!
+ * called after the last testfunction was executed
+ */
+void TestRadioPresetStorage::cleanupTestCase()
+{
+
+}
+
+/*!
+ * Test saving preset
+ */
+void TestRadioPresetStorage::testSavePreset()
+{
+ int test = mPresetStorage->maxNumberOfPresets();
+ int initialPresetCount( 0 );
+ //int initialPresetindex( KFirstPresetIndex );
+ RadioStation station;
+ station.setFrequency( KTestFrequency1 );
+ station.setPresetIndex( KFirstPresetIndex );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ QVERIFY2(( mPresetStorage->presetCount() == initialPresetCount + 1 ), "API:RadioPresetStorage testSavePreset 1");
+ QVERIFY2(( mPresetStorage->nextPreset( KFirstPresetIndex ) == 0 ), "API:RadioPresetStorage testSavePreset 2");
+
+ station.setFrequency( KTestFrequency2 );
+ station.setPresetIndex( KSecondPresetIndex );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ QVERIFY2(( mPresetStorage->presetCount() == initialPresetCount + 2 ), "API:RadioPresetStorage testSavePreset 3");
+ QVERIFY2(( mPresetStorage->nextPreset( KFirstPresetIndex ) == KSecondPresetIndex ), "API:RadioPresetStorage testSavePreset 4");
+
+ // check that saving preset fails if preset index and frequency are allready in use
+ station.setFrequency( KTestFrequency2 );
+ station.setPresetIndex( KSecondPresetIndex );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ QVERIFY2(( mPresetStorage->presetCount() == initialPresetCount + 2 ), "API:RadioPresetStorage testSavePreset 5");
+
+ // check that saving preset success when new preset index and frequency are not in use
+ station.setFrequency( KTestFrequency3 );
+ station.setPresetIndex( KThirdPresetIndex );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ QVERIFY2(( mPresetStorage->presetCount() == initialPresetCount + 3 ), "API:RadioPresetStorage testSavePreset 6");
+
+ // check that saving with invalid preset index fails
+ station.setFrequency( KTestFrequency4 );
+ station.setPresetIndex( KInvalidPresetIndex );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ QVERIFY2(( mPresetStorage->presetCount() == initialPresetCount + 3 ), "API:RadioPresetStorage testSavePreset 6");
+}
+
+/*!
+ * Test reading preset
+ */
+void TestRadioPresetStorage::testReadPreset()
+{
+ RadioStation station;
+ RadioStationIf* preset = static_cast<RadioStationIf*>( station.data_ptr() );
+ mPresetStorage->readPreset( KFirstPresetIndex, *preset );
+ QVERIFY2(( preset->frequency() == KTestFrequency1 ), "API:RadioPresetStorage testReadPreset 1");
+
+ RadioStation station1;
+ RadioStationIf* preset1 = static_cast<RadioStationIf*>( station1.data_ptr() );
+ mPresetStorage->readPreset( KSecondPresetIndex, *preset1 );
+ QVERIFY2(( preset->frequency() == KTestFrequency2 ), "API:RadioPresetStorage testReadPreset 2");
+
+ RadioStation station2;
+ RadioStationIf* preset2 = static_cast<RadioStationIf*>( station2.data_ptr() );
+ mPresetStorage->readPreset( KThirdPresetIndex, *preset2 );
+ QVERIFY2(( preset->frequency() == KTestFrequency3 ), "API:RadioPresetStorage testReadPreset 3");
+
+ RadioStation station3;
+ RadioStationIf* preset3 = static_cast<RadioStationIf*>( station3.data_ptr() );
+ // test the value returned with invalid preset index
+ mPresetStorage->readPreset( KThirdPresetIndex + 1, *preset3 );
+ // TODO: change the value to KErrNotFound when preset utility update done
+ QVERIFY2(( preset->frequency() == 87500000 ), "API:RadioPresetStorage testReadPreset 4");
+}
+
+/*!
+ * Test deleting preset
+ */
+void TestRadioPresetStorage::testDeletePreset()
+{
+ int initialPresetCount( mPresetStorage->presetCount() );
+
+ QVERIFY2(( mPresetStorage->firstPreset() == KFirstPresetIndex ), "API:RadioPresetStorage testDeletePreset 1");
+ QVERIFY2(( mPresetStorage->nextPreset( KFirstPresetIndex ) == KSecondPresetIndex ), "API:RadioPresetStorage testDeletePreset 2");
+ mPresetStorage->deletePreset( KSecondPresetIndex );
+ QVERIFY2(( mPresetStorage->nextPreset( KFirstPresetIndex ) == KThirdPresetIndex ), "API:RadioPresetStorage testDeletePreset 3");
+ QVERIFY2(( mPresetStorage->presetCount() == (initialPresetCount - 1)), "API:RadioPresetStorage testDeletePreset 4");
+
+ RadioStation station;
+ RadioStationIf* preset = static_cast<RadioStationIf*>( station.data_ptr() );
+ mPresetStorage->readPreset( KSecondPresetIndex, *preset );
+ // TODO: change the value to KErrNotFound when preset utility update done
+ QVERIFY2(( preset->frequency() == 87500000 ), "API:RadioPresetStorage testDeletePreset 5");
+
+ mPresetStorage->deletePreset( KFirstPresetIndex );
+ QVERIFY2(( mPresetStorage->firstPreset() == KThirdPresetIndex ), "API:RadioPresetStorage testDeletePreset 6");
+ mPresetStorage->deletePreset( KThirdPresetIndex );
+ QVERIFY2(( mPresetStorage->presetCount() == 0), "API:RadioPresetStorage testDeletePreset 7");
+}
+
+/*!
+ * Test filling preset storage and handling boundary values
+ */
+void TestRadioPresetStorage::testStessTest()
+{
+ for(int i = 0; i < mPresetStorage->maxNumberOfPresets(); i++)
+ {
+ RadioStation station;
+ station.setFrequency( 87500000 + i*KFrequencyStep );
+ station.setPresetIndex( i );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ }
+ QVERIFY2(( mPresetStorage->presetCount() == mPresetStorage->maxNumberOfPresets()), "API:RadioPresetStorage testStessTest 1");
+ int test = mPresetStorage->presetCount();
+ RadioStation station;
+ station.setFrequency( 87500000 + mPresetStorage->maxNumberOfPresets()*KFrequencyStep + KFrequencyStep);
+ station.setPresetIndex( mPresetStorage->maxNumberOfPresets() );
+ mPresetStorage->savePreset( *station.data_ptr() );
+ int r = mPresetStorage->presetCount();
+ // preset count must not increase
+ QVERIFY2(( mPresetStorage->presetCount() == mPresetStorage->maxNumberOfPresets()), "API:RadioPresetStorage testStessTest 2");
+
+ for(int i = 0; i <= mPresetStorage->maxNumberOfPresets(); i++)
+ {
+ mPresetStorage->deletePreset( i );
+ }
+
+ // test deleting with invalid preset index
+ mPresetStorage->deletePreset( KInvalidPresetIndex );
+ QVERIFY2(( mPresetStorage->presetCount() == 0), "API:RadioPresetStorage testStessTest 3");
+}