Home | History | Annotate | Download | only in result
      1 /*
      2  * Copyright (C) 2016 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 
     17 package com.android.tradefed.result;
     18 
     19 import com.android.test.metrics.proto.FileMetadataProto.FileMetadata;
     20 import com.android.test.metrics.proto.FileMetadataProto.LogFile;
     21 import com.android.test.metrics.proto.FileMetadataProto.LogType;
     22 import org.junit.Assert;
     23 import org.junit.Before;
     24 import org.junit.Test;
     25 import org.junit.runner.RunWith;
     26 import org.junit.runners.JUnit4;
     27 
     28 /** Unit tests for {@link com.android.tradefed.result.FileMetadataCollector}. */
     29 @RunWith(JUnit4.class)
     30 public class FileMetadataCollectorTest {
     31     private FileMetadataCollector mCollector = null;
     32 
     33     private static final LogDataType DATA_TYPE_BR = LogDataType.BUGREPORT;
     34     private static final LogDataType DATA_TYPE_LC = LogDataType.LOGCAT;
     35     private static final LogType LOG_TYPE_BR = LogType.BUGREPORT;
     36     private static final LogType LOG_TYPE_LC = LogType.LOGCAT;
     37     private static final String NAME_BR1 = "br1";
     38     private static final String NAME_BR2 = "br2";
     39     private static final String NAME_LC1 = "lc1";
     40     private static final String NAME_LC2 = "lc2";
     41 
     42     @Before
     43     public void setUp() {
     44         mCollector = new FileMetadataCollector();
     45     }
     46 
     47     /** A simple test to ensure expected output is generated for test run with no logs. */
     48     @Test
     49     public void testNoElements() throws Exception {
     50         // Generate actual value
     51         FileMetadata actual = mCollector.getMetadataContents();
     52         // Generate expected value
     53         FileMetadata expected = FileMetadata.newBuilder().build();
     54         // Assert equality
     55         Assert.assertEquals(actual, expected);
     56     }
     57 
     58     /**
     59      * A simple test to ensure expected output is generated for test run with a single log type with a
     60      * single log.
     61      */
     62     @Test
     63     public void testSingleTypeSingleElement() throws Exception {
     64         // Generate actual value
     65         mCollector.testLogSaved(NAME_BR1, DATA_TYPE_BR, null, null);
     66         FileMetadata actual = mCollector.getMetadataContents();
     67         // Generate expected value
     68         LogFile log = LogFile.newBuilder().setLogType(LOG_TYPE_BR).setName(NAME_BR1).build();
     69         FileMetadata expected = FileMetadata.newBuilder().addLogFiles(log).build();
     70         // Assert equality
     71         Assert.assertEquals(actual, expected);
     72     }
     73 
     74     /**
     75      * A simple test to ensure expected output is generated for test run with a single log type, but
     76      * multiple log files.
     77      */
     78     @Test
     79     public void testSingleTypeMultipleElements() throws Exception {
     80         // Generate actual value
     81         mCollector.testLogSaved(NAME_BR1, DATA_TYPE_BR, null, null);
     82         mCollector.testLogSaved(NAME_BR2, DATA_TYPE_BR, null, null);
     83         FileMetadata actual = mCollector.getMetadataContents();
     84         // Generate expected value
     85         LogFile log1 = LogFile.newBuilder().setLogType(LOG_TYPE_BR).setName(NAME_BR1).build();
     86         LogFile log2 = LogFile.newBuilder().setLogType(LOG_TYPE_BR).setName(NAME_BR2).build();
     87         FileMetadata expected = FileMetadata.newBuilder()
     88                 .addLogFiles(log1).addLogFiles(log2).build();
     89         // Assert equality
     90         Assert.assertEquals(actual, expected);
     91     }
     92 
     93     /**
     94      * A simple test to ensure expected output is generated for test run with multiple log types and
     95      * multiple log files.
     96      */
     97     @Test
     98     public void testMultipleTypesMultipleElements() throws Exception {
     99         // Generate actual value
    100         mCollector.testLogSaved(NAME_BR1, DATA_TYPE_BR, null, null);
    101         mCollector.testLogSaved(NAME_BR2, DATA_TYPE_BR, null, null);
    102         mCollector.testLogSaved(NAME_LC1, DATA_TYPE_LC, null, null);
    103         mCollector.testLogSaved(NAME_LC2, DATA_TYPE_LC, null, null);
    104         FileMetadata actual = mCollector.getMetadataContents();
    105         // Generate expected value
    106         LogFile log1 = LogFile.newBuilder().setLogType(LOG_TYPE_BR).setName(NAME_BR1).build();
    107         LogFile log2 = LogFile.newBuilder().setLogType(LOG_TYPE_BR).setName(NAME_BR2).build();
    108         LogFile log3 = LogFile.newBuilder().setLogType(LOG_TYPE_LC).setName(NAME_LC1).build();
    109         LogFile log4 = LogFile.newBuilder().setLogType(LOG_TYPE_LC).setName(NAME_LC2).build();
    110         FileMetadata expected = FileMetadata.newBuilder()
    111                 .addLogFiles(log1).addLogFiles(log2).addLogFiles(log3).addLogFiles(log4).build();
    112         // Assert equality
    113         Assert.assertEquals(actual, expected);
    114     }
    115 }
    116