Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ian-ellis/32bd4dd6d63a6e64bda4fc56e1d6f96a to your computer and use it in GitHub Desktop.
Save ian-ellis/32bd4dd6d63a6e64bda4fc56e1d6f96a to your computer and use it in GitHub Desktop.
package com.theiconic.spockexamples.bag.domain.usecases;
import com.theiconic.spockexamples.bag.domain.repositories.BagRepository;
import com.theiconic.spockexamples.bag.domain.usecases.RemoveProductFromBagUseCase;
import com.theiconic.spockexamples.common.entities.BrandEntity;
import com.theiconic.spockexamples.common.entities.ImageEntity;
import com.theiconic.spockexamples.shop.entities.CatalogProductEntity;
import com.theiconic.spockexamples.shop.entities.CategoryEntity;
import org.junit.Before;
import org.junit.Test;
import rx.Observable;
import rx.observers.TestSubscriber;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
public class RemoveProductFromBagUseCaseTest {
private RemoveProductFromBagUseCase usecase;
@Before
public void setup(){
usecase = new RemoveProductFromBagUseCase();
usecase.repository = mock(BagRepository.class);
}
@Test
public void execute_removesGivenProductFromTheRepository(){
String simple = "ABC123";
TestSubscriber<Boolean> subscriber = new TestSubscriber<>();
Observable<Boolean> out = Observable.just(true);
when(usecase.repository.removeItem(simple)).thenReturn(out);
usecase.execute(simple).subscribe(subscriber);
verify(usecase.repository,times(1)).removeItem(simple);
assertEquals(subscriber.getOnNextEvents().size(),1);
assertTrue(subscriber.getOnNextEvents().get(0));
subscriber.assertNoErrors();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment