/* * Copyright (c) 2013-2015 Chris Newland. * Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD * Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki */ package org.adoptopenjdk.jitwatch.test; import org.adoptopenjdk.jitwatch.model.MetaPackage; import org.adoptopenjdk.jitwatch.model.PackageManager; import org.junit.Test; import java.util.Arrays; import java.util.List; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.*; public class TestPackageManager { /* Scenario: No valid package name is passed Given an unknown or empty package name is passed to the PackageManager When the package is built Then an empty meta package is returned */ /* Deadcode detected via this test { if (mp == null) { // default package "" mp = new MetaPackage(S_EMPTY); metaPackages.put(S_EMPTY, mp); } } */ @Test public void givenUnknownPackageNameIsUsedWithPackageManager_WhenPackageIsBuilt_ThenEmptyMetaPackage() { // Given MetaPackage expectedPackage = new MetaPackage(S_EMPTY); // When PackageManager packageManager = new PackageManager(); MetaPackage actualPackage = packageManager.buildPackage(S_EMPTY); // Then assertThat(actualPackage, is(equalTo(expectedPackage))); } /* Scenario: Valid package name is passed Given an valid package name is passed to the PackageManager When the package is built And the root packages are requested Then the appropriate root packages are returned */ @Test public void givenKnownPackageNameIsUsedWithPackageManager_WhenPackageIsBuiltAndRootPackagesAreRequested_ThenRootPackagesAreReturned() { // Given List<MetaPackage> expectedRootPackages = Arrays.asList(new MetaPackage("com")); // When PackageManager packageManager = new PackageManager(); packageManager.buildPackage("com.sun.java"); List<MetaPackage> actualRootPackages = packageManager.getRootPackages(); // Then assertThat(actualRootPackages, is(equalTo(expectedRootPackages))); } }