package org.hisp.dhis.android.core.common;

import android.database.Cursor;

import org.hisp.dhis.android.core.option.OptionSetModel;

import java.util.Date;

import static org.hisp.dhis.android.core.data.database.CursorAssert.assertThatCursor;

class StoreMocks {
    static OptionSetModel generateOptionSetModel() {
        return OptionSetModel.builder()
                .uid("1234567890")
                .code("code")
                .name("name")
                .displayName("displayName")
                .created(new Date())
                .lastUpdated(new Date())
                .version(1)
                .valueType(ValueType.AGE)
                .build();
    }

    static OptionSetModel generateUpdatedOptionSetModel() {
        return OptionSetModel.builder()
                .uid("1234567890")
                .code("updated_code")
                .name("name")
                .displayName("updated_displayName")
                .created(new Date())
                .lastUpdated(new Date())
                .version(2)
                .valueType(ValueType.AGE)
                .build();
    }

    static OptionSetModel generateOptionSetModelWithoutUid() {
        return OptionSetModel.builder()
                .uid(null)
                .code("code")
                .name("name")
                .displayName("displayName")
                .created(new Date())
                .lastUpdated(new Date())
                .version(1)
                .valueType(ValueType.AGE)
                .build();
    }

    static void optionSetCursorAssert(Cursor cursor, OptionSetModel m) {
        assertThatCursor(cursor).hasRow(
                m.uid(),
                m.code(),
                m.name(),
                m.displayName(),
                m.createdStr(),
                m.lastUpdatedStr(),
                m.version(),
                m.valueType()
        ).isExhausted();
    }
}

@@ -120,21 +120,16 @@
 ptionSet
-Model
 ;%0A%0Aimpor
@@ -265,37 +265,32 @@
 static OptionSet
-Model
  generateOptionS
@@ -283,37 +283,32 @@
 enerateOptionSet
-Model
 () %7B%0A        ret
@@ -312,37 +312,32 @@
 return OptionSet
-Model
 .builder()%0A     
@@ -663,37 +663,32 @@
 static OptionSet
-Model
  generateUpdated
@@ -696,21 +696,16 @@
 ptionSet
-Model
 () %7B%0A   
@@ -717,37 +717,32 @@
 return OptionSet
-Model
 .builder()%0A     
@@ -1092,21 +1092,16 @@
 ptionSet
-Model
  generat
@@ -1110,21 +1110,16 @@
 ptionSet
-Model
 WithoutU
@@ -1149,21 +1149,16 @@
 ptionSet
-Model
 .builder
@@ -1538,15 +1538,10 @@
 nSet
-Model m
+ o
 ) %7B%0A
@@ -1597,17 +1597,17 @@
         
-m
+o
 .uid(),%0A
@@ -1622,17 +1622,17 @@
         
-m
+o
 .code(),
@@ -1648,17 +1648,17 @@
         
-m
+o
 .name(),
@@ -1674,17 +1674,17 @@
         
-m
+o
 .display
@@ -1711,17 +1711,59 @@
     
-m
+BaseIdentifiableObject.DATE_FORMAT.format(o
 .created
 Str(
@@ -1754,28 +1754,26 @@
 at(o.created
-Str
 (
+)
 ),%0A         
@@ -1779,17 +1779,59 @@
         
-m
+BaseIdentifiableObject.DATE_FORMAT.format(o
 .lastUpd
@@ -1838,12 +1838,10 @@
 ated
-Str
 (
+)
 ),%0A 
@@ -1855,17 +1855,17 @@
         
-m
+o
 .version
@@ -1884,17 +1884,17 @@
         
-m
+o
 .valueTy

Refactor StoreMocks for OptionSets