1package com.android.example.bindingdemo.vo;
2
3import android.databinding.OnPropertyChangedListener;
4
5import com.android.example.bindingdemo.R;
6
7import org.junit.Before;
8import org.junit.Test;
9
10import static org.junit.Assert.assertEquals;
11import static org.mockito.Mockito.mock;
12import static org.mockito.Mockito.verify;
13import static org.mockito.Mockito.verifyNoMoreInteractions;
14
15import com.android.example.bindingdemo.BR;
16public class UnitTest {
17
18    private User testUser;
19
20    @Before
21    public void setUp() throws Exception {
22        testUser = new User("Ted", "Tester", R.drawable.george, User.ROBOTS);
23    }
24
25    @Test
26    public void settersWorkFineOnTheJvm() throws Exception {
27        assertEquals("Ted", testUser.getName());
28        testUser.setName("Tom");
29        assertEquals("Tom", testUser.getName());
30    }
31
32    @Test
33    public void listeners() throws Exception {
34        OnPropertyChangedListener mockListener = mock(OnPropertyChangedListener.class);
35        testUser.addOnPropertyChangedListener(mockListener);
36        testUser.setName("Tom");
37        verify(mockListener).onPropertyChanged(testUser, BR.name);
38        verifyNoMoreInteractions(mockListener);
39    }
40}
41