1 #include <boost/test/unit_test.hpp>
6 extern std::string sqlHost, sqlUser, sqlPass, sqlDB;
8 BOOST_AUTO_TEST_SUITE( TestTime )
10 BOOST_AUTO_TEST_CASE( testSQL ) {
11 BOOST_REQUIRE( parseConfig("config.txt") == 0 );
12 std::shared_ptr<MySQLJobProvider> jp( new MySQLJobProvider( sqlHost, sqlUser, sqlPass, sqlDB ) );
13 BOOST_REQUIRE( jp->query( "TRUNCATE TABLE profiles" ).first == 0 );
14 BOOST_REQUIRE( jp->query( "TRUNCATE TABLE certs" ).first == 0 );
15 BOOST_REQUIRE( jp->query( "TRUNCATE TABLE certAvas" ).first == 0 );
16 BOOST_REQUIRE( jp->query( "TRUNCATE TABLE subjectAlternativeNames" ).first == 0 );
17 BOOST_REQUIRE( jp->query( "TRUNCATE TABLE jobs" ).first == 0 );
18 BOOST_REQUIRE( jp->query( "INSERT INTO profiles SET id='1', keyname='assured', keyUsage='', extendedKeyUsage='', name='assured'" ).first == 0 );
19 BOOST_REQUIRE( jp->query( "INSERT INTO jobs SET task='sign', targetId='1'" ).first == 0 );
21 std::shared_ptr<Job> job = jp->fetchJob();
24 BOOST_REQUIRE_EQUAL( job->target, "1" );
25 BOOST_REQUIRE_EQUAL( job->task, "sign" );
28 std::shared_ptr<TBSCertificate> cert = jp->fetchTBSCert(job);
29 BOOST_REQUIRE( !cert );
30 BOOST_REQUIRE( jp->query( "INSERT INTO certs SET csr_type='CSR', id='1', profile='1'" ).first == 0 );
31 BOOST_REQUIRE( jp->query( "INSERT INTO subjectAlternativeNames SET certId='1', contents='example.org', type='DNS'" ).first == 0 );
32 BOOST_REQUIRE( jp->query( "INSERT INTO certAvas SET certid='1', name='CN', value='example.org'" ).first == 0 );
33 cert = jp->fetchTBSCert(job);
34 BOOST_REQUIRE( cert );
36 std::shared_ptr<SignedCertificate> fcert( new SignedCertificate() );
37 fcert->certificate="CERT";
39 fcert->crt_name="crt.name.crt";
40 fcert->ca_name="assured";
41 jp->writeBack( job, fcert );
43 BOOST_REQUIRE( !jp->fetchJob() );
44 BOOST_REQUIRE( jp->query( "INSERT INTO jobs SET task='revoke', targetId='1'" ).first == 0 );
46 BOOST_REQUIRE_EQUAL( job->target, "1" );
47 BOOST_REQUIRE_EQUAL( job->task, "revoke" );
48 std::pair<std::string, std::string> revocationInfo = jp->getRevocationInfo( job );
49 BOOST_REQUIRE_EQUAL( revocationInfo.first, "1234");
50 BOOST_REQUIRE_EQUAL( revocationInfo.second, "assured");
51 jp->writeBackRevocation( job, "2000-01-01 01:01:01" );
55 BOOST_AUTO_TEST_CASE( testSQLDisconnected ) {
57 //BOOST_REQUIRE( parseConfig("config.txt") == 0 );
58 std::shared_ptr<MySQLJobProvider> jp( new MySQLJobProvider( sqlHost, sqlUser, sqlPass, sqlDB ) );
61 BOOST_REQUIRE( jp->query("SELECT 1").first);
62 BOOST_REQUIRE_THROW( jp->escape_string("uia"), const char * );
63 BOOST_REQUIRE_THROW( jp->finishJob(std::shared_ptr<Job>()), const char * );
64 BOOST_REQUIRE_THROW( jp->failJob(std::shared_ptr<Job>()), const char * );
67 BOOST_AUTO_TEST_SUITE_END()