Home | History | Annotate | Download | only in testtype
      1 /*
      2  * Copyright (C) 2017 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of 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,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 package com.android.tradefed.testtype;
     17 
     18 import com.android.tradefed.result.ITestInvocationListener;
     19 import com.android.tradefed.util.FileUtil;
     20 
     21 import org.easymock.EasyMock;
     22 import org.junit.After;
     23 import org.junit.Before;
     24 import org.junit.Test;
     25 import org.junit.runner.RunWith;
     26 import org.junit.runners.JUnit4;
     27 
     28 import java.io.File;
     29 
     30 /**
     31  * Unit test for {@link NoisyDryRunTest}.
     32  */
     33 @RunWith(JUnit4.class)
     34 public class NoisyDryRunTestTest {
     35 
     36     private File mFile;
     37     private ITestInvocationListener mMockListener;
     38 
     39     @Before
     40     public void setUp() throws Exception {
     41         mFile = FileUtil.createTempFile("NoisyDryRunTestTest", "tmpFile");
     42         mMockListener = EasyMock.createMock(ITestInvocationListener.class);
     43     }
     44 
     45     @After
     46     public void tearDown() {
     47         FileUtil.deleteFile(mFile);
     48     }
     49 
     50     @Test
     51     public void testRun() throws Exception {
     52         FileUtil.writeToFile("tf/fake\n"
     53                 + "tf/fake", mFile);
     54         mMockListener.testRunStarted("com.android.tradefed.testtype.NoisyDryRunTest_parseFile", 1);
     55         mMockListener.testStarted(EasyMock.anyObject());
     56         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
     57         mMockListener.testRunEnded(EasyMock.eq(0l), EasyMock.anyObject());
     58 
     59         mMockListener.testRunStarted("com.android.tradefed.testtype.NoisyDryRunTest_parseCommands",
     60                 2);
     61         mMockListener.testStarted(EasyMock.anyObject());
     62         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
     63         mMockListener.testStarted(EasyMock.anyObject());
     64         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
     65         mMockListener.testRunEnded(EasyMock.eq(0l), EasyMock.anyObject());
     66         replayMocks();
     67 
     68         NoisyDryRunTest noisyDryRunTest = new NoisyDryRunTest();
     69         noisyDryRunTest.setCmdFile(mFile.getAbsolutePath());
     70         noisyDryRunTest.run(mMockListener);
     71         verifyMocks();
     72     }
     73 
     74     @Test
     75     public void testRun_invalidCmdFile() throws Exception {
     76         FileUtil.deleteFile(mFile);
     77         mMockListener.testRunStarted("com.android.tradefed.testtype.NoisyDryRunTest_parseFile", 1);
     78         mMockListener.testStarted(EasyMock.anyObject());
     79         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
     80         mMockListener.testFailed(EasyMock.anyObject(), EasyMock.anyObject());
     81         mMockListener.testRunEnded(EasyMock.eq(0l), EasyMock.anyObject());
     82         replayMocks();
     83 
     84         NoisyDryRunTest noisyDryRunTest = new NoisyDryRunTest();
     85         noisyDryRunTest.setCmdFile(mFile.getAbsolutePath());
     86         noisyDryRunTest.run(mMockListener);
     87         verifyMocks();
     88     }
     89 
     90     @Test
     91     public void testRun_invalidCmdLine() throws Exception {
     92         FileUtil.writeToFile("tf/fake\n"
     93                 + "invalid --option value2", mFile);
     94         mMockListener.testRunStarted("com.android.tradefed.testtype.NoisyDryRunTest_parseFile", 1);
     95         mMockListener.testStarted(EasyMock.anyObject());
     96         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
     97         mMockListener.testRunEnded(EasyMock.eq(0l), EasyMock.anyObject());
     98 
     99         mMockListener.testRunStarted("com.android.tradefed.testtype.NoisyDryRunTest_parseCommands",
    100                 2);
    101         mMockListener.testStarted(EasyMock.anyObject());
    102         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
    103         mMockListener.testStarted(EasyMock.anyObject());
    104         mMockListener.testFailed(EasyMock.anyObject(), EasyMock.anyObject());
    105         mMockListener.testEnded(EasyMock.anyObject(), EasyMock.anyObject());
    106         mMockListener.testRunEnded(EasyMock.eq(0l), EasyMock.anyObject());
    107         replayMocks();
    108 
    109         NoisyDryRunTest noisyDryRunTest = new NoisyDryRunTest();
    110         noisyDryRunTest.setCmdFile(mFile.getAbsolutePath());
    111         noisyDryRunTest.run(mMockListener);
    112         verifyMocks();
    113     }
    114 
    115     private void replayMocks() {
    116         EasyMock.replay(mMockListener);
    117     }
    118 
    119     private void verifyMocks() {
    120         EasyMock.verify(mMockListener);
    121     }
    122 }
    123