/**
@SYMTestCaseID			SYSLIB-SQL-CT-1637
@SYMTestCaseDesc		RSqlDatabase::Create() test.
						Tests RSqlDatabase::Create() call when the request is for creation of a secure database.
@SYMTestPriority		High
@SYMTestActions			RSqlDatabase::Create() test.
@SYMTestExpectedResults Test must not fail
@SYMREQ					REQ5792
                        REQ5793
*/
void CreateSecureDatabaseTest()
{
    RSqlSecurityPolicy securityPolicy;

    //Create and initialize RSqlSecurityPolicy object.
    CreateTestSecurityPolicy(securityPolicy);

    //Create secure database using the data from securityPolicy object.
    RSqlDatabase db;
    TInt err = db.Create(KTestDbName, securityPolicy);
    TEST2(err, KErrNone);
    securityPolicy.Close();

    //Check that the database security policy matches the policy used when the database was created.
    err = db.GetSecurityPolicy(securityPolicy);
    TEST2(err, KErrNone);
    CheckTestSecurityPolicy(securityPolicy);
    securityPolicy.Close();

    db.Close();

    //Reopen the database and check the security policies
    err = db.Open(KTestDbName);
    TEST2(err, KErrNone);

    //Check that the database security policy matches the policy used when the database was created.
    err = db.GetSecurityPolicy(securityPolicy);
    TEST2(err, KErrNone);
    CheckTestSecurityPolicy(securityPolicy);
    securityPolicy.Close();

    db.Close();

    err = RSqlDatabase::Delete(KTestDbName);
    TEST2(err, KErrNone);

    //An attempt to create a secure database specifying the full database path
    CreateTestSecurityPolicy(securityPolicy);
    err = db.Create(KTestDbName2, securityPolicy);
    securityPolicy.Close();
    TEST2(err, KErrArgument);

    //An attempt to create a non-secure database formatting the database file name as <drive:><dbFileName>
    err = db.Create(KTestDbName);
    TEST2(err, KErrArgument);
}