package com.octo.android.robospice.spicelist;

import org.easymock.EasyMock;

import android.test.InstrumentationTestCase;
import android.test.UiThreadTest;
import android.widget.AbsListView.OnScrollListener;

public class SpiceListViewTest extends InstrumentationTestCase {

	private SpiceListView spiceListView;
	private OnScrollListener mockOnScrollListener;

	@Override
	protected void setUp() throws Exception {
		super.setUp();
		spiceListView = new SpiceListView(getInstrumentation().getContext());
		mockOnScrollListener = EasyMock.createMock(OnScrollListener.class);
	}

	@UiThreadTest
	public void testOnScroll_triggers_wrapped_listener() {
		//GIVEN
		mockOnScrollListener.onScroll(spiceListView, 0,0,0);
		EasyMock.replay(mockOnScrollListener);

		//WHEN
		spiceListView.setOnScrollListener(mockOnScrollListener);
		spiceListView.scrollTo(0, 100);

		//THEN
		EasyMock.verify(mockOnScrollListener);
	}

	@UiThreadTest
	public void testOnFling_triggers_wrapped_listener() throws InterruptedException {
		//GIVEN
		mockOnScrollListener.onScroll(spiceListView, 0,0,0);
		mockOnScrollListener.onScrollStateChanged(spiceListView, OnScrollListener.SCROLL_STATE_FLING);
		EasyMock.replay(mockOnScrollListener);
		
		//WHEN
		spiceListView.setOnScrollListener(mockOnScrollListener);
		spiceListView.onScrollListener.onScrollStateChanged(spiceListView, OnScrollListener.SCROLL_STATE_FLING);

		//THEN
		EasyMock.verify(mockOnScrollListener);
	}

}

@@ -269,17 +269,82 @@
 Case %7B%0A%0A
-%09
+    private static final int SCROLL_Y_AMOUNT_IN_PIXELS = 100;%0A    
 private 
@@ -372,17 +372,20 @@
 stView;%0A
-%09
+    
 private 
@@ -424,17 +424,20 @@
 tener;%0A%0A
-%09
+    
 @Overrid
@@ -438,17 +438,20 @@
 verride%0A
-%09
+    
 protecte
@@ -484,18 +484,24 @@
 ption %7B%0A
-%09%09
+        
 super.se
@@ -507,18 +507,24 @@
 etUp();%0A
-%09%09
+        
 spiceLis
@@ -585,18 +585,24 @@
 ext());%0A
-%09%09
+        
 mockOnSc
@@ -661,21 +661,27 @@
 class);%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 @UiThrea
@@ -678,33 +678,36 @@
   @UiThreadTest%0A
-%09
+    
 public void test
@@ -745,28 +745,40 @@
 ner() %7B%0A
-%09%09//GIVEN%0A%09%09
+        //GIVEN%0A        
 mockOnSc
@@ -816,24 +816,32 @@
 View, 0,
+ 
 0,
+ 
 0);%0A
-%09%09
+        
 EasyMock
@@ -872,27 +872,39 @@
 ener);%0A%0A
-%09%09//WHEN%0A%09%09
+        //WHEN%0A        
 spiceLis
@@ -944,34 +944,40 @@
 crollListener);%0A
-%09%09
+        
 spiceListView.sc
@@ -990,26 +990,60 @@
 (0, 
-100);%0A%0A%09%09//THEN%0A%09%09
+SCROLL_Y_AMOUNT_IN_PIXELS);%0A%0A        //THEN%0A        
 Easy
@@ -1081,13 +1081,19 @@
 r);%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 @UiT
@@ -1102,17 +1102,20 @@
 eadTest%0A
-%09
+    
 public v
@@ -1192,20 +1192,32 @@
 n %7B%0A
-%09%09//GIVEN%0A%09%09
+        //GIVEN%0A        
 mock
@@ -1263,16 +1263,24 @@
 , 0,
+ 
 0,
+ 
 0);%0A
-%09%09
+        
 mock
@@ -1370,18 +1370,24 @@
 FLING);%0A
-%09%09
+        
 EasyMock
@@ -1421,22 +1421,40 @@
 r);%0A
-%09%09%0A%09%09//WHEN%0A%09%09
+        %0A        //WHEN%0A        
 spic
@@ -1506,18 +1506,24 @@
 tener);%0A
-%09%09
+        
 spiceLis
@@ -1624,19 +1624,31 @@
 );%0A%0A
-%09%09//THEN%0A%09%09
+        //THEN%0A        
 Easy
@@ -1686,9 +1686,12 @@
 r);%0A
-%09
+    
 %7D%0A%0A%7D

Fix checkstyle violations. Ready to release 1.4.13