/*
* Copyright (c) 2009, Paul Merlin. All Rights Reserved.
*
* 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 org.codeartisans.java.sos.sampleapp;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import org.swing.on.steroids.guice.GuiceHelper;
import org.codeartisans.java.sos.sampleapp.domain.DefaultGreetService;
import org.codeartisans.java.sos.sampleapp.domain.GreetService;
import org.codeartisans.java.sos.sampleapp.presentation.presenters.GreetingsPresenter;
import org.codeartisans.java.sos.sampleapp.presentation.views.GreetingsView;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
/**
* @author Paul Merlin
*/
public final class GreetingsPresenterTest
{
private static class GreetingsPresenterTestGuiceModule
extends AbstractModule
{
@Override
protected void configure()
{
bind( GreetingsView.class ).to( MockGreetingsView.class );
bind( GreetingsPresenter.class );
bind( GreetService.class ).to( DefaultGreetService.class );
}
}
private static Injector injector;
private GreetingsPresenter presenter;
private MockGreetingsView view;
@BeforeClass
public static void beforeClass()
{
GuiceHelper.enableDebugOutput();
injector = Guice.createInjector( new GreetingsPresenterTestGuiceModule() );
}
@Before
public void before()
{
presenter = injector.getInstance( GreetingsPresenter.class );
view = ( MockGreetingsView ) presenter.view();
presenter.bind();
presenter.view().reveal();
}
@Test
public void testGreetingsPresenter()
{
view.name.setValue( "Bob" );
view.greet.click();
try {
Thread.sleep( 200 );
} catch ( InterruptedException ex ) {
}
Assert.assertEquals( "Hello Bob!", view.message.getValue() );
}
@After
public void after()
{
view.close.click();
presenter.unbind();
}
}