/** * Copyright 2015-2017 The OpenZipkin Authors * * 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 zipkin.storage.elasticsearch.http.integration; import java.io.IOException; import java.util.List; import org.junit.Before; import org.junit.Test; import zipkin.Span; import zipkin.TestObjects; import zipkin.internal.CallbackCaptor; import zipkin.storage.elasticsearch.http.ElasticsearchHttpStorage; import zipkin.storage.elasticsearch.http.InternalForTests; import static org.assertj.core.api.Assertions.assertThat; abstract class ElasticsearchHttpNamesFallbackTest { /** Should maintain state between multiple calls within a test. */ abstract ElasticsearchHttpStorage storage(); /** Setup test data which has doesnt map the "servicespan" type */ @Before public void clear() throws IOException { InternalForTests.clear(storage()); CallbackCaptor<Void> callback = new CallbackCaptor<>(); InternalForTests.oldConsumer(storage()).accept(TestObjects.TRACE, callback); callback.get(); } @Test public void getServiceNames() throws Exception { accept(TestObjects.TRACE); assertThat(storage().spanStore().getServiceNames()) .containsExactly("app", "db", "no_ip", "web"); } @Test public void getSpanNames() throws Exception { accept(TestObjects.TRACE); assertThat(storage().spanStore().getSpanNames("app")) .containsExactly("get", "query"); } void accept(List<Span> trace) throws Exception { CallbackCaptor<Void> callback = new CallbackCaptor<>(); InternalForTests.oldConsumer(storage()).accept(trace, callback); callback.get(); } }