1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5 * use this file except in compliance with the License. You may obtain a copy of
6 * the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16
17#include "TaskCaseCommon.h"
18class TaskSequentialTest : public testing::Test {
19public:
20    TaskCase* mTestCase;
21    TaskSequential* mSequential;
22
23
24    virtual void SetUp() {
25        TaskGeneric* setup = NULL;
26        TaskGeneric* action = NULL;
27        mTestCase  = getTaskCase(setup, action);
28        ASSERT_TRUE(mTestCase != NULL);
29        ASSERT_TRUE(setup != NULL);
30        ASSERT_TRUE(action != NULL);
31        mSequential = new TaskSequential();
32        action->addChild(mSequential);
33    }
34
35    virtual void TearDown() {
36        delete mTestCase;
37    }
38};
39
40
41TEST_F(TaskSequentialTest, AttributeTest) {
42    const android::String8 REPEAT("repeat");
43    const android::String8 N_10("10");
44    const android::String8 INDEX("index");
45    const android::String8 I("i");
46    const android::String8 NO_SUCH_THING("no_such_thing");
47    const android::String8 SHOULD_FAIL("should_fail");
48    ASSERT_TRUE(mSequential->parseAttribute(REPEAT, N_10));
49    ASSERT_TRUE(mSequential->parseAttribute(INDEX, I));
50    ASSERT_TRUE(!mSequential->parseAttribute(NO_SUCH_THING, SHOULD_FAIL));
51    mSequential->run();
52    const android::String8 RE(".*");
53    std::list<TaskCase::IndexPair>* indices = mTestCase->findAllIndices(RE);
54    ASSERT_TRUE(indices != NULL);
55    ASSERT_TRUE(indices->size() == 1);
56    int index = -10;
57
58    ASSERT_TRUE(mTestCase->findIndex(I, index));
59    ASSERT_TRUE(index == 10);
60    delete indices;
61}
62
63
64
65
66