@@ -15,6 +15,69 @@ public class Project
1515 {
1616 public static string TypeName = "project" ;
1717
18+ public IEnumerable < string > Branches { get ; set ; }
19+ public IList < Tag > CuratedTags { get ; set ; }
20+ public string DateString { get ; set ; }
21+ public string Description { get ; set ; }
22+
23+ public JoinField Join => JoinField . Root < Project > ( ) ;
24+ public DateTime LastActivity { get ; set ; }
25+ public Developer LeadDeveloper { get ; set ; }
26+ public SimpleGeoPoint Location { get ; set ; }
27+ public Dictionary < string , Metadata > Metadata { get ; set ; }
28+ public string Name { get ; set ; }
29+ public int ? NumberOfCommits { get ; set ; }
30+ public int NumberOfContributors { get ; set ; }
31+
32+ public Ranges Ranges { get ; set ; }
33+ public int ? RequiredBranches => Branches ? . Count ( ) ;
34+
35+ public SourceOnlyObject SourceOnly { get ; set ; }
36+ public DateTime StartedOn { get ; set ; }
37+ public StateOfBeing State { get ; set ; }
38+ public CompletionField Suggest { get ; set ; }
39+ public IEnumerable < Tag > Tags { get ; set ; }
40+ public string Type => TypeName ;
41+
42+ //the first applies when using internal source serializer the latter when using JsonNetSourceSerializer
43+ [ StringEnum ] [ JsonConverter ( typeof ( StringEnumConverter ) ) ]
44+ public Visibility Visibility { get ; set ; }
45+
46+ // @formatter:off — disable formatter after this line
47+ public static Faker < Project > Generator { get ; } =
48+ new Faker < Project > ( )
49+ . UseSeed ( TestConfiguration . Instance . Seed )
50+ . RuleFor ( p => p . Name , f => f . Person . Company . Name + f . UniqueIndex . ToString ( ) )
51+ . RuleFor ( p => p . Description , f => f . Lorem . Paragraphs ( 3 ) )
52+ . RuleFor ( p => p . State , f => f . PickRandom < StateOfBeing > ( ) )
53+ . RuleFor ( p => p . Visibility , f => f . PickRandom < Visibility > ( ) )
54+ . RuleFor ( p => p . StartedOn , p => p . Date . Past ( ) )
55+ . RuleFor ( p => p . DateString , ( p , d ) => d . StartedOn . ToString ( "yyyy-MM-ddTHH\\ :mm\\ :ss.fffffffzzz" ) )
56+ . RuleFor ( p => p . LastActivity , p => p . Date . Recent ( ) )
57+ . RuleFor ( p => p . LeadDeveloper , p => Developer . Developers [ Gimme . Random . Number ( 0 , Developer . Developers . Count - 1 ) ] )
58+ . RuleFor ( p => p . Tags , f => Tag . Generator . Generate ( Gimme . Random . Number ( 2 , 50 ) ) )
59+ . RuleFor ( p => p . CuratedTags , f => Tag . Generator . Generate ( Gimme . Random . Number ( 1 , 5 ) ) )
60+ . RuleFor ( p => p . Location , f => SimpleGeoPoint . Generator . Generate ( ) )
61+ . RuleFor ( p => p . NumberOfCommits , f => Gimme . Random . Number ( 1 , 1000 ) )
62+ . RuleFor ( p => p . NumberOfContributors , f => Gimme . Random . Number ( 1 , 200 ) )
63+ . RuleFor ( p => p . Ranges , f => Ranges . Generator . Generate ( ) )
64+ . RuleFor ( p => p . Branches , f => Gimme . Random . ListItems ( new List < string > { "master" , "dev" , "release" , "qa" , "test" } ) )
65+ . RuleFor ( p => p . SourceOnly , f =>
66+ TestConfiguration . Instance . Random . SourceSerializer ? new SourceOnlyObject ( ) : null
67+ )
68+ . RuleFor ( p => p . Suggest , f => new CompletionField
69+ {
70+ Input = new [ ] { f . Person . Company . Name } ,
71+ Contexts = new Dictionary < string , IEnumerable < string > >
72+ {
73+ { "color" , new [ ] { "red" , "blue" , "green" , "violet" , "yellow" } . Take ( Gimme . Random . Number ( 1 , 4 ) ) }
74+ }
75+ } ) ;
76+
77+ public static IList < Project > Projects { get ; } = Generator . Clone ( ) . Generate ( 100 ) ;
78+
79+ public static Project First { get ; } = Projects . First ( ) ;
80+
1881 public static readonly Project Instance = new Project
1982 {
2083 Name = Projects . First ( ) . Name ,
@@ -59,70 +122,11 @@ public class Project
59122 } ;
60123
61124
62- public IEnumerable < string > Branches { get ; set ; }
63- public IList < Tag > CuratedTags { get ; set ; }
64- public string DateString { get ; set ; }
65- public string Description { get ; set ; }
66-
67- public static Project First { get ; } = Projects . First ( ) ;
68-
69- public static Faker < Project > Generator { get ; } =
70- new Faker < Project > ( )
71- . UseSeed ( TestConfiguration . Instance . Seed )
72- . RuleFor ( p => p . Name , f => f . Person . Company . Name + f . UniqueIndex . ToString ( ) )
73- . RuleFor ( p => p . Description , f => f . Lorem . Paragraphs ( 3 ) )
74- . RuleFor ( p => p . State , f => f . PickRandom < StateOfBeing > ( ) )
75- . RuleFor ( p => p . Visibility , f => f . PickRandom < Visibility > ( ) )
76- . RuleFor ( p => p . StartedOn , p => p . Date . Past ( ) )
77- . RuleFor ( p => p . DateString , ( p , d ) => d . StartedOn . ToString ( "yyyy-MM-ddTHH\\ :mm\\ :ss.fffffffzzz" ) )
78- . RuleFor ( p => p . LastActivity , p => p . Date . Recent ( ) )
79- . RuleFor ( p => p . LeadDeveloper , p => Developer . Developers [ Gimme . Random . Number ( 0 , Developer . Developers . Count - 1 ) ] )
80- . RuleFor ( p => p . Tags , f => Tag . Generator . Generate ( Gimme . Random . Number ( 2 , 50 ) ) )
81- . RuleFor ( p => p . CuratedTags , f => Tag . Generator . Generate ( Gimme . Random . Number ( 1 , 5 ) ) )
82- . RuleFor ( p => p . Location , f => SimpleGeoPoint . Generator . Generate ( ) )
83- . RuleFor ( p => p . NumberOfCommits , f => Gimme . Random . Number ( 1 , 1000 ) )
84- . RuleFor ( p => p . NumberOfContributors , f => Gimme . Random . Number ( 1 , 200 ) )
85- . RuleFor ( p => p . Ranges , f => Ranges . Generator . Generate ( ) )
86- . RuleFor ( p => p . Branches , f => Gimme . Random . ListItems ( new List < string > { "master" , "dev" , "release" , "qa" , "test" } ) )
87- . RuleFor ( p => p . SourceOnly , f =>
88- TestConfiguration . Instance . Random . SourceSerializer ? new SourceOnlyObject ( ) : null
89- )
90- . RuleFor ( p => p . Suggest , f => new CompletionField
91- {
92- Input = new [ ] { f . Person . Company . Name } ,
93- Contexts = new Dictionary < string , IEnumerable < string > >
94- {
95- { "color" , new [ ] { "red" , "blue" , "green" , "violet" , "yellow" } . Take ( Gimme . Random . Number ( 1 , 4 ) ) }
96- }
97- } ) ;
98-
99125 public static object InstanceAnonymous => TestConfiguration . Instance . Random . SourceSerializer
100126 ? InstanceAnonymousSourceSerializer
101127 : InstanceAnonymousDefault ;
102128
103- public JoinField Join => JoinField . Root < Project > ( ) ;
104- public DateTime LastActivity { get ; set ; }
105- public Developer LeadDeveloper { get ; set ; }
106- public SimpleGeoPoint Location { get ; set ; }
107- public Dictionary < string , Metadata > Metadata { get ; set ; }
108- public string Name { get ; set ; }
109- public int ? NumberOfCommits { get ; set ; }
110- public int NumberOfContributors { get ; set ; }
111-
112- public static IList < Project > Projects { get ; } = Generator . Clone ( ) . Generate ( 100 ) ;
113- public Ranges Ranges { get ; set ; }
114- public int ? RequiredBranches => Branches ? . Count ( ) ;
115-
116- public SourceOnlyObject SourceOnly { get ; set ; }
117- public DateTime StartedOn { get ; set ; }
118- public StateOfBeing State { get ; set ; }
119- public CompletionField Suggest { get ; set ; }
120- public IEnumerable < Tag > Tags { get ; set ; }
121- public string Type => TypeName ;
122-
123- //the first applies when using internal source serializer the latter when using JsonNetSourceSerializer
124- [ StringEnum ] [ JsonConverter ( typeof ( StringEnumConverter ) ) ]
125- public Visibility Visibility { get ; set ; }
129+ // @formatter:on — enable formatter after this line
126130 }
127131
128132 //the first applies when using internal source serializer the latter when using JsonNetSourceSerializer
0 commit comments