1package com.xtremelabs.robolectric.shadows;
2
3import static org.hamcrest.CoreMatchers.equalTo;
4import static org.hamcrest.CoreMatchers.is;
5import static org.hamcrest.CoreMatchers.notNullValue;
6import static org.junit.Assert.assertThat;
7
8import java.util.Map;
9
10import org.junit.Before;
11import org.junit.Test;
12import org.junit.runner.RunWith;
13
14import android.content.ContentProviderOperation;
15import android.content.ContentProviderOperation.Builder;
16
17import com.xtremelabs.robolectric.Robolectric;
18import com.xtremelabs.robolectric.WithTestDefaultsRunner;
19
20@RunWith(WithTestDefaultsRunner.class)
21public class ContentProviderOperationBuilderTest {
22    private Builder builder;
23    private ShadowContentProviderOperationBuilder shadowBuilder;
24
25    @Before
26    public void before() {
27        builder = Robolectric.newInstanceOf(Builder.class);
28        shadowBuilder = Robolectric.shadowOf(builder);
29    }
30
31    @Test
32    public void withValue() {
33        builder
34            .withValue("stringTest", "bar")
35            .withValue("intTest", 5)
36            .withValue("longTest", 10L);
37
38        Map<String, Object> values = shadowBuilder.getValues();
39        assertThat(values.size(), is(3));
40        assertThat(values.get("stringTest").toString(), equalTo("bar"));
41        assertThat(Integer.parseInt(values.get("intTest").toString()), equalTo(5));
42        assertThat(Long.parseLong(values.get("longTest").toString()), equalTo(10L));
43    }
44
45    @Test
46    public void withSelection() {
47        builder
48            .withSelection("first", new String[] { "a", "b" })
49            .withSelection("second", new String[] { "c", "d" });
50
51        Map<String, String[]> selections = shadowBuilder.getSelections();
52        assertThat(selections.size(), is(2));
53        assertThat(selections.get("first"), equalTo(new String[] { "a", "b" }));
54        assertThat(selections.get("second"), equalTo(new String[] { "c", "d" }));
55    }
56
57    @Test
58    public void withValueBackReference() {
59        builder.withValueBackReference("foo", 5);
60
61        int backReference = shadowBuilder.getWithValueBackReference("foo");
62        assertThat(backReference, is(5));
63    }
64
65    @Test
66    public void build() {
67        ContentProviderOperation operation = builder.build();
68        assertThat(operation, notNullValue());
69    }
70}