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