/*
 * Copyright (C) 2013 Sebastian Kaspari
 *
 * 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.androidzeitgeist.ani.discovery;

import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.spy;

import org.junit.Test;

/**
 * Unit tests for the {@link Discovery} class.
 */
public class DiscoveryTest {
    /**
     * Calling {@link Discovery#enable(DiscoveryListener)} is a shortcut for calling
     * {@link Discovery#setDisoveryListener(DiscoveryListener)} and
     * {@link Discovery#enable()}.
     */
    @Test
    public void testEnableWithListenerIsShortcut() throws Exception {
        DiscoveryListener listener = mock(DiscoveryListener.class);

        Discovery discovery = spy(new Discovery());
        doNothing().when(discovery).enable();

        discovery.enable(listener);

        verify(discovery).setDisoveryListener(listener);
        verify(discovery).enable();
    }
}

@@ -723,17 +723,20 @@
 Mockito.
-*
+mock
 ;%0Aimport
@@ -767,16 +767,58 @@
 ito.spy;
+%0Aimport static org.mockito.Mockito.verify;
 %0A%0Aimport
@@ -1465,16 +1465,16 @@
 tener);%0A
-
         
@@ -1506,11 +1506,730 @@
 );%0A    %7D
+%0A%0A    /**%0A     * Calling %7B@link Discovery#enable()%7D without setting a listener will throw an%0A     * %7B@link IllegalStateException%7D.%0A     */%0A    @Test(expected=IllegalStateException.class)%0A    public void testEnableThrowsExceptionIfNoListenerIsSet() throws Exception %7B%0A        Discovery discovery = new Discovery();%0A        discovery.enable();%0A    %7D%0A%0A    /**%0A     * Calling %7B@link Discovery#disable()%7D without a matching call to%0A     * %7B@link Discovery#enable()%7D will throw an %7B@link IllegalAccessError%7D.%0A     */%0A    @Test(expected=IllegalAccessError.class)%0A    public void testDisableWithoutEnablingWillThrowException() throws Exception %7B%0A        Discovery discovery = new Discovery();%0A        discovery.disable();%0A    %7D
 %0A%7D%0A

Add more test cases for the Discovery class.