// Copyright 2016 Pants project contributors (see CONTRIBUTORS.md). // Licensed under the Apache License, Version 2.0 (see LICENSE). package com.twitter.intellij.pants.service.project.model; import com.google.common.annotations.VisibleForTesting; import com.twitter.intellij.pants.model.PantsSourceType; import com.twitter.intellij.pants.model.TargetAddressInfo; import junit.framework.TestCase; import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; public class TargetInfoTest extends TestCase { public void test1() { TargetInfo info = createTargetInfoWithTargetAddressInfo("resource", "source"); assertEquals(PantsSourceType.SOURCE, info.getSourcesType()); } public void test2() { TargetInfo info = createTargetInfoWithTargetAddressInfo("test", "source"); assertEquals(PantsSourceType.SOURCE, info.getSourcesType()); } public void test3() { TargetInfo info = createTargetInfoWithTargetAddressInfo("test", "resource", "test_resource"); assertEquals(PantsSourceType.TEST, info.getSourcesType()); } public void test4() { TargetInfo info = createTargetInfoWithTargetAddressInfo("test_resource", "resource", "resource"); assertEquals(PantsSourceType.RESOURCE, info.getSourcesType()); } public void test5() { TargetInfo info = createTargetInfoWithTargetAddressInfo("test_resource", "test_resource"); assertEquals(PantsSourceType.TEST_RESOURCE, info.getSourcesType()); } public void testInvalid() { TargetInfo info = createTargetInfoWithTargetAddressInfo("invalid_type", "test_resource"); assertEquals(PantsSourceType.SOURCE, info.getSourcesType()); } @VisibleForTesting public static TargetInfo createTargetInfoWithTargetAddressInfo(String... types) { Set<TargetAddressInfo> targetAddressInfoSet = Arrays.stream(types).map(s -> { TargetAddressInfo x = new TargetAddressInfo(); x.setTargetType(s); return x; }).collect(Collectors.toSet()); TargetInfo dummy = new TargetInfo(); dummy.setAddressInfos(targetAddressInfoSet); return dummy; } }