diff options
Diffstat (limited to 'src/main/java/com/android/vts/entity/TestCoverageStatusEntity.java')
-rw-r--r-- | src/main/java/com/android/vts/entity/TestCoverageStatusEntity.java | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/src/main/java/com/android/vts/entity/TestCoverageStatusEntity.java b/src/main/java/com/android/vts/entity/TestCoverageStatusEntity.java deleted file mode 100644 index 1156cc7..0000000 --- a/src/main/java/com/android/vts/entity/TestCoverageStatusEntity.java +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (c) 2017 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you - * may not use this file except in compliance with the License. You may - * obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ - -package com.android.vts.entity; - -import static com.googlecode.objectify.ObjectifyService.ofy; - -import com.google.appengine.api.datastore.Entity; -import com.googlecode.objectify.Key; -import com.googlecode.objectify.annotation.Cache; -import com.googlecode.objectify.annotation.Id; -import com.googlecode.objectify.annotation.Index; -import java.util.Collection; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; -import java.util.stream.Collectors; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@com.googlecode.objectify.annotation.Entity(name = "TestCoverageStatus") -@EqualsAndHashCode(of = "testName") -@Cache -@NoArgsConstructor -/** Entity describing test coverage status. */ -public class TestCoverageStatusEntity implements DashboardEntity { - - protected static final Logger logger = - Logger.getLogger(TestCoverageStatusEntity.class.getName()); - - public static final String KIND = "TestCoverageStatus"; - - // Property keys - public static final String TOTAL_LINE_COUNT = "totalLineCount"; - public static final String COVERED_LINE_COUNT = "coveredLineCount"; - public static final String UPDATED_TIMESTAMP = "updatedTimestamp"; - public static final String DEVICE_INFO_ID = "deviceInfoId"; - - /** TestCoverageStatusEntity name field */ - @Id @Getter @Setter String testName; - - /** TestCoverageStatusEntity coveredLineCount field */ - @Index @Getter @Setter long coveredLineCount; - - /** TestCoverageStatusEntity totalLineCount field */ - @Index @Getter @Setter long totalLineCount; - - /** TestCoverageStatusEntity updatedTimestamp field */ - @Index @Getter @Setter long updatedTimestamp; - - /** TestCoverageStatusEntity DeviceInfo Entity ID reference field */ - @Index @Getter @Setter long deviceInfoId; - - /** TestCoverageStatusEntity updatedCoveredLineCount field */ - @Index @Getter @Setter long updatedCoveredLineCount; - - /** TestCoverageStatusEntity updatedTotalLineCount field */ - @Index @Getter @Setter long updatedTotalLineCount; - - /** TestCoverageStatusEntity updatedDate field */ - @Index @Getter @Setter Date updatedDate; - - /** - * Create a TestCoverageStatusEntity object with status metadata. - * - * @param testName The name of the test. - * @param timestamp The timestamp indicating the most recent test run event in the test state. - * @param coveredLineCount The number of lines covered. - * @param totalLineCount The total number of lines. - */ - public TestCoverageStatusEntity( - String testName, - long timestamp, - long coveredLineCount, - long totalLineCount, - long deviceInfoId) { - this.testName = testName; - this.updatedTimestamp = timestamp; - this.coveredLineCount = coveredLineCount; - this.totalLineCount = totalLineCount; - this.deviceInfoId = deviceInfoId; - } - - /** find TestCoverageStatus entity by ID */ - public static TestCoverageStatusEntity findById(String testName) { - return ofy().load().type(TestCoverageStatusEntity.class).id(testName).now(); - } - - /** Get all TestCoverageStatusEntity List */ - public static Map<String, TestCoverageStatusEntity> getTestCoverageStatusMap() { - List<TestCoverageStatusEntity> testCoverageStatusEntityList = getAllTestCoverage(); - - Map<String, TestCoverageStatusEntity> testCoverageStatusMap = - testCoverageStatusEntityList.stream() - .collect(Collectors.toMap(t -> t.getTestName(), t -> t)); - return testCoverageStatusMap; - } - - /** Get all DeviceInfoEntity List by TestCoverageStatusEntities' key list */ - public static List<Key<DeviceInfoEntity>> getDeviceInfoEntityKeyList( - List<TestCoverageStatusEntity> testCoverageStatusEntityList) { - return testCoverageStatusEntityList - .stream() - .map( - testCoverageStatusEntity -> { - com.googlecode.objectify.Key testKey = - com.googlecode.objectify.Key.create( - TestEntity.class, - testCoverageStatusEntity.getTestName()); - com.googlecode.objectify.Key testRunKey = - com.googlecode.objectify.Key.create( - testKey, - TestRunEntity.class, - testCoverageStatusEntity.getUpdatedTimestamp()); - return com.googlecode.objectify.Key.create( - testRunKey, - DeviceInfoEntity.class, - testCoverageStatusEntity.getDeviceInfoId()); - }) - .collect(Collectors.toList()); - } - - /** Get all TestCoverageStatusEntity List */ - public static List<TestCoverageStatusEntity> getAllTestCoverage() { - return ofy().load().type(TestCoverageStatusEntity.class).list(); - } - - /** Get all TestCoverageStatusEntities' Branch List */ - public static Set<String> getBranchSet( - List<TestCoverageStatusEntity> testCoverageStatusEntityList) { - List<com.googlecode.objectify.Key<DeviceInfoEntity>> deviceInfoEntityKeyList = - getDeviceInfoEntityKeyList(testCoverageStatusEntityList); - - Collection<DeviceInfoEntity> deviceInfoEntityList = - ofy().load().keys(() -> deviceInfoEntityKeyList.iterator()).values(); - - Set<String> branchSet = - deviceInfoEntityList - .stream() - .map(deviceInfoEntity -> deviceInfoEntity.getBranch()) - .collect(Collectors.toSet()); - return branchSet; - } - - /** Get all TestCoverageStatusEntities' Device List */ - public static Set<String> getDeviceSet( - List<TestCoverageStatusEntity> testCoverageStatusEntityList) { - List<com.googlecode.objectify.Key<DeviceInfoEntity>> deviceInfoEntityKeyList = - getDeviceInfoEntityKeyList(testCoverageStatusEntityList); - - Collection<DeviceInfoEntity> deviceInfoEntityList = - ofy().load().keys(() -> deviceInfoEntityKeyList.iterator()).values(); - - Set<String> deviceSet = - deviceInfoEntityList - .stream() - .map(deviceInfoEntity -> deviceInfoEntity.getBuildFlavor()) - .collect(Collectors.toSet()); - return deviceSet; - } - - /** TestRunEntity function to get the related TestRunEntity from id value */ - public TestRunEntity getTestRunEntity() { - com.googlecode.objectify.Key testKey = - com.googlecode.objectify.Key.create(TestEntity.class, this.testName); - return ofy().load() - .type(TestRunEntity.class) - .parent(testKey) - .id(this.updatedTimestamp) - .now(); - } - - /** Saving function for the instance of this class */ - @Override - public Key<TestCoverageStatusEntity> save() { - this.updatedDate = new Date(); - return ofy().save().entity(this).now(); - } - - public Entity toEntity() { - Entity testEntity = new Entity(KIND, this.testName); - testEntity.setProperty(UPDATED_TIMESTAMP, this.updatedTimestamp); - testEntity.setProperty(COVERED_LINE_COUNT, this.coveredLineCount); - testEntity.setProperty(TOTAL_LINE_COUNT, this.totalLineCount); - return testEntity; - } - - /** - * Convert an Entity object to a TestCoverageStatusEntity. - * - * @param e The entity to process. - * @return TestCoverageStatusEntity object with the properties from e processed, or null if - * incompatible. - */ - @SuppressWarnings("unchecked") - public static TestCoverageStatusEntity fromEntity(Entity e) { - if (!e.getKind().equals(KIND) - || e.getKey().getName() == null - || !e.hasProperty(UPDATED_TIMESTAMP) - || !e.hasProperty(COVERED_LINE_COUNT) - || !e.hasProperty(TOTAL_LINE_COUNT) - || !e.hasProperty(DEVICE_INFO_ID)) { - logger.log(Level.WARNING, "Missing test attributes in entity: " + e.toString()); - return null; - } - String testName = e.getKey().getName(); - long timestamp = 0; - long coveredLineCount = -1; - long totalLineCount = -1; - long deviceInfoId = 0; - try { - timestamp = (long) e.getProperty(UPDATED_TIMESTAMP); - coveredLineCount = (Long) e.getProperty(COVERED_LINE_COUNT); - totalLineCount = (Long) e.getProperty(TOTAL_LINE_COUNT); - deviceInfoId = (Long) e.getProperty(DEVICE_INFO_ID); - } catch (ClassCastException exception) { - // Invalid contents or null values - logger.log(Level.WARNING, "Error parsing test entity.", exception); - return null; - } - return new TestCoverageStatusEntity( - testName, timestamp, coveredLineCount, totalLineCount, deviceInfoId); - } -} |