LineVerifier.java revision 4199c54c527330ac01699b176e7bca186a3aa3a4
14199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa/*
24199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Copyright (C) 2009 The Android Open Source Project
34199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
44199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Licensed under the Apache License, Version 2.0 (the "License");
54199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * you may not use this file except in compliance with the License.
64199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * You may obtain a copy of the License at
74199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
84199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *      http://www.apache.org/licenses/LICENSE-2.0
94199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa *
104199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * Unless required by applicable law or agreed to in writing, software
114199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * distributed under the License is distributed on an "AS IS" BASIS,
124199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * See the License for the specific language governing permissions and
144199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa * limitations under the License.
154199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa */
164199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapackage com.android.vcard.tests.test_utils;
174199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
184199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport com.android.vcard.VCardComposer;
194199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
204199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport android.content.Context;
214199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
224199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport junit.framework.TestCase;
234199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
244199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawaimport java.util.ArrayList;
254199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
264199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawapublic class LineVerifier implements VCardComposer.OneEntryHandler {
274199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private final TestCase mTestCase;
284199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private final ArrayList<LineVerifierElem> mLineVerifierElemList;
294199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private int mVCardType;
304199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    private int index;
314199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
324199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public LineVerifier(TestCase testCase, int vcardType) {
334199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mTestCase = testCase;
344199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mLineVerifierElemList = new ArrayList<LineVerifierElem>();
354199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mVCardType = vcardType;
364199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
374199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
384199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public LineVerifierElem addLineVerifierElem() {
394199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        LineVerifierElem lineVerifier = new LineVerifierElem(mTestCase, mVCardType);
404199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        mLineVerifierElemList.add(lineVerifier);
414199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        return lineVerifier;
424199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
434199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
444199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void verify(String vcard) {
454199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        if (index >= mLineVerifierElemList.size()) {
464199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa            mTestCase.fail("Insufficient number of LineVerifier (" + index + ")");
474199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        }
484199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
494199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        LineVerifierElem lineVerifier = mLineVerifierElemList.get(index);
504199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        lineVerifier.verify(vcard);
514199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
524199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        index++;
534199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
544199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
554199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public boolean onEntryCreated(String vcard) {
564199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        verify(vcard);
574199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        return true;
584199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
594199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
604199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public boolean onInit(Context context) {
614199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa        return true;
624199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
634199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa
644199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    public void onTerminate() {
654199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa    }
664199c54c527330ac01699b176e7bca186a3aa3a4Daisuke Miyakawa}
67