/* * Copyright 2016-present Facebook, Inc. * * 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.facebook.buck.cli; import static org.junit.Assert.assertThat; import com.facebook.buck.jvm.core.JavaPackageFinder; import com.facebook.buck.jvm.java.DefaultJavaPackageFinder; import com.facebook.buck.jvm.java.JavaPackageFinderSerializer; import com.facebook.buck.jvm.java.ResourcesRootPackageFinder; import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSortedSet; import java.nio.file.Paths; import java.util.Map; import org.hamcrest.Matchers; import org.junit.Test; public class JavaPackageFinderSerializerTest { @Test public void testSerializingAndDeserializing() throws Exception { DefaultJavaPackageFinder defaultFinder = new DefaultJavaPackageFinder( ImmutableSortedSet.of("paths", "from", "root"), ImmutableSet.of("path", "elements")); ResourcesRootPackageFinder resourcesRootFinder = new ResourcesRootPackageFinder(Paths.get("/path/to/res/root"), defaultFinder); Map<String, Object> data = JavaPackageFinderSerializer.serialize(resourcesRootFinder); JavaPackageFinder result = JavaPackageFinderSerializer.deserialize(data); assertThat(result, Matchers.instanceOf(ResourcesRootPackageFinder.class)); ResourcesRootPackageFinder outResFinder = (ResourcesRootPackageFinder) result; assertThat( outResFinder.getResourcesRoot(), Matchers.equalToObject(resourcesRootFinder.getResourcesRoot())); JavaPackageFinder chainedFinder = outResFinder.getFallbackFinder(); assertThat(chainedFinder, Matchers.instanceOf(DefaultJavaPackageFinder.class)); DefaultJavaPackageFinder outDefFinder = (DefaultJavaPackageFinder) chainedFinder; assertThat( outDefFinder.getPathElements(), Matchers.equalToObject(defaultFinder.getPathElements())); assertThat( outDefFinder.getPathsFromRoot(), Matchers.equalToObject(defaultFinder.getPathsFromRoot())); } }