/******************************************************************************* * Copyright (c) 2015 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package com.openshift.internal.restclient.okhttp; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import java.io.IOException; import java.net.ProtocolException; import org.junit.Test; import com.openshift.internal.restclient.DefaultClient; import com.openshift.internal.restclient.okhttp.WatchClient.WatchEndpoint; import com.openshift.restclient.IOpenShiftWatchListener; import com.openshift.restclient.IOpenShiftWatchListener.ChangeType; import com.openshift.restclient.ResourceKind; import com.openshift.restclient.http.IHttpConstants; import okhttp3.Protocol; import okhttp3.Request; import okhttp3.Response; /** * @author Andre Dietisheim */ public class WatchClientTest { @Test public void testOnFailureCallBackNotifiesListener() { DefaultClient client = null; IOpenShiftWatchListener listener = mock(IOpenShiftWatchListener.class); WatchEndpoint endpoint = new WatchEndpoint(client, listener, ResourceKind.BUILD); endpoint.onFailure(new IOException(), null); verify(listener).error(any(Throwable.class)); } @Test public void shouldIgnoreUnsupportedFeatureResponseOnFailure() { DefaultClient client = mock(DefaultClient.class); IOpenShiftWatchListener listener = mock(IOpenShiftWatchListener.class); WatchEndpoint endpoint = new WatchEndpoint(client, listener, ResourceKind.BUILD); Response.Builder responseBuilder = new Response.Builder(); responseBuilder.code(IHttpConstants.STATUS_OK) .protocol(Protocol.HTTP_2) .request(new Request.Builder().url("http://localhost").build()); endpoint.onFailure(new ProtocolException(), responseBuilder.build()); verify(listener, never()).error(any()); } @Test public void changeTypeShouldEqualSameChangeType() { assertThat(ChangeType.ADDED, equalTo(ChangeType.ADDED)); } @Test public void changeTypeShouldNotEqualDifferentChangeType() { assertThat(ChangeType.ADDED, not(equalTo(ChangeType.DELETED))); } @Test public void changeTypeShouldEqualSameChangeTypeInLowercase() { assertThat(ChangeType.ADDED, equalTo(new ChangeType(ChangeType.ADDED.getValue().toLowerCase()))); } }