Skip to content

Commit d1f1c48

Browse files
authored
Add the Naughty Strings (StefH#15)
* RandomizerNaughtyStrings * . * GUI
1 parent 95cf77b commit d1f1c48

24 files changed

+1835
-37
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
</PropertyGroup>
55

66
<PropertyGroup>
7-
<VersionPrefix>1.0.11</VersionPrefix>
7+
<VersionPrefix>1.0.12</VersionPrefix>
88
</PropertyGroup>
99
</Project>

Example Project Files/My Project.xml

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<ProjectSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3-
<Date>2018-12-03T10:23:44.2639199+01:00</Date>
4-
<Name>My Test Project</Name>
3+
<Date>2020-06-24T20:33:30.4891227+02:00</Date>
4+
<Name>My Table</Name>
55
<TotalRecords>1000</TotalRecords>
66
<OutputFile>c:\Temp\output.sql</OutputFile>
77
<GenerateOptions xsi:type="GenerateOptionsSQL">
@@ -15,6 +15,7 @@
1515
<FieldOptions xsi:type="FieldOptionsInteger">
1616
<UseNullValues>false</UseNullValues>
1717
<ValueAsString>false</ValueAsString>
18+
<Seed xsi:nil="true" />
1819
<Min>0</Min>
1920
<Max>77778888</Max>
2021
</FieldOptions>
@@ -30,6 +31,7 @@
3031
<FieldOptions xsi:type="FieldOptionsFirstName">
3132
<UseNullValues>false</UseNullValues>
3233
<ValueAsString>true</ValueAsString>
34+
<Seed xsi:nil="true" />
3335
<Male>true</Male>
3436
<Female>true</Female>
3537
</FieldOptions>
@@ -45,6 +47,7 @@
4547
<FieldOptions xsi:type="FieldOptionsLastName">
4648
<UseNullValues>false</UseNullValues>
4749
<ValueAsString>true</ValueAsString>
50+
<Seed xsi:nil="true" />
4851
</FieldOptions>
4952
<Field>
5053
<FieldType>Human</FieldType>
@@ -58,6 +61,7 @@
5861
<FieldOptions xsi:type="FieldOptionsFullName">
5962
<UseNullValues>false</UseNullValues>
6063
<ValueAsString>true</ValueAsString>
64+
<Seed xsi:nil="true" />
6165
<Male>true</Male>
6266
<Female>true</Female>
6367
<Left2Right>true</Left2Right>
@@ -74,6 +78,7 @@
7478
<FieldOptions xsi:type="FieldOptionsEmailAddress">
7579
<UseNullValues>true</UseNullValues>
7680
<ValueAsString>true</ValueAsString>
81+
<Seed xsi:nil="true" />
7782
<Male>true</Male>
7883
<Female>true</Female>
7984
<Left2Right>true</Left2Right>
@@ -90,6 +95,7 @@
9095
<FieldOptions xsi:type="FieldOptionsCity">
9196
<UseNullValues>false</UseNullValues>
9297
<ValueAsString>true</ValueAsString>
98+
<Seed xsi:nil="true" />
9399
</FieldOptions>
94100
<Field>
95101
<FieldType>Location</FieldType>
@@ -103,6 +109,7 @@
103109
<FieldOptions xsi:type="FieldOptionsCountry">
104110
<UseNullValues>false</UseNullValues>
105111
<ValueAsString>true</ValueAsString>
112+
<Seed xsi:nil="true" />
106113
</FieldOptions>
107114
<Field>
108115
<FieldType>Location</FieldType>
@@ -116,6 +123,7 @@
116123
<FieldOptions xsi:type="FieldOptionsTextWords">
117124
<UseNullValues>false</UseNullValues>
118125
<ValueAsString>true</ValueAsString>
126+
<Seed xsi:nil="true" />
119127
<Min>1</Min>
120128
<Max>3</Max>
121129
</FieldOptions>
@@ -131,6 +139,7 @@
131139
<FieldOptions xsi:type="FieldOptionsText">
132140
<UseNullValues>false</UseNullValues>
133141
<ValueAsString>true</ValueAsString>
142+
<Seed xsi:nil="true" />
134143
<Min>4</Min>
135144
<Max>8</Max>
136145
<UseUppercase>false</UseUppercase>
@@ -152,6 +161,7 @@
152161
<FieldOptions xsi:type="FieldOptionsTextPattern">
153162
<UseNullValues>false</UseNullValues>
154163
<ValueAsString>true</ValueAsString>
164+
<Seed xsi:nil="true" />
155165
<Pattern>\xLLnn_**ss\x</Pattern>
156166
</FieldOptions>
157167
<Field>
@@ -166,6 +176,7 @@
166176
<FieldOptions xsi:type="FieldOptionsTextRegex">
167177
<UseNullValues>false</UseNullValues>
168178
<ValueAsString>false</ValueAsString>
179+
<Seed xsi:nil="true" />
169180
<Pattern>[a-z]{4,8}</Pattern>
170181
</FieldOptions>
171182
<Field>
@@ -175,11 +186,27 @@
175186
<SubFieldType>TextRegex</SubFieldType>
176187
</SubField>
177188
</DataField>
189+
<DataField>
190+
<Name>Text NaughtyStrings</Name>
191+
<FieldOptions xsi:type="FieldOptionsTextNaughtyStrings">
192+
<UseNullValues>false</UseNullValues>
193+
<ValueAsString>false</ValueAsString>
194+
<Seed xsi:nil="true" />
195+
<Categories>All</Categories>
196+
</FieldOptions>
197+
<Field>
198+
<FieldType>Text</FieldType>
199+
</Field>
200+
<SubField>
201+
<SubFieldType>TextNaughtyStrings</SubFieldType>
202+
</SubField>
203+
</DataField>
178204
<DataField>
179205
<Name>Set_StringList</Name>
180206
<FieldOptions xsi:type="FieldOptionsStringList">
181207
<UseNullValues>false</UseNullValues>
182208
<ValueAsString>true</ValueAsString>
209+
<Seed xsi:nil="true" />
183210
<Values>
184211
<string>Active</string>
185212
<string>InActive</string>
@@ -198,6 +225,7 @@
198225
<FieldOptions xsi:type="FieldOptionsDateTime">
199226
<UseNullValues>true</UseNullValues>
200227
<ValueAsString>true</ValueAsString>
228+
<Seed xsi:nil="true" />
201229
<Format>s</Format>
202230
<From>2018-12-03T00:00:00Z</From>
203231
<To>2019-12-03T00:00:00Z</To>
@@ -215,6 +243,7 @@
215243
<FieldOptions xsi:type="FieldOptionsIPv4Address">
216244
<UseNullValues>false</UseNullValues>
217245
<ValueAsString>true</ValueAsString>
246+
<Seed xsi:nil="true" />
218247
</FieldOptions>
219248
<Field>
220249
<FieldType>IT</FieldType>
@@ -228,6 +257,7 @@
228257
<FieldOptions xsi:type="FieldOptionsIPv6Address">
229258
<UseNullValues>false</UseNullValues>
230259
<ValueAsString>true</ValueAsString>
260+
<Seed xsi:nil="true" />
231261
<Uppercase>false</Uppercase>
232262
</FieldOptions>
233263
<Field>
@@ -242,6 +272,7 @@
242272
<FieldOptions xsi:type="FieldOptionsMACAddress">
243273
<UseNullValues>false</UseNullValues>
244274
<ValueAsString>true</ValueAsString>
275+
<Seed xsi:nil="true" />
245276
<Separator>:</Separator>
246277
<Uppercase>true</Uppercase>
247278
</FieldOptions>
@@ -257,7 +288,9 @@
257288
<FieldOptions xsi:type="FieldOptionsGuid">
258289
<UseNullValues>false</UseNullValues>
259290
<ValueAsString>true</ValueAsString>
291+
<Seed xsi:nil="true" />
260292
<Uppercase>true</Uppercase>
293+
<Format>D</Format>
261294
</FieldOptions>
262295
<Field>
263296
<FieldType>IT</FieldType>

GitHubReleaseNotes.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
https://github.com/StefH/GitHubReleaseNotes
22

3-
GitHubReleaseNotes.exe --output ReleaseNotes.md --skip-empty-releases --version 1.0.11.0
3+
GitHubReleaseNotes.exe --output ReleaseNotes.md --skip-empty-releases --version 1.0.12.0

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ This is a simple generator to create random data.
2121
- DateTime
2222
- Numbers (integer, long, float, double, byte, ...)
2323
- Bytes
24+
- NaughtyStrings
2425

2526
## Usage
2627

@@ -51,6 +52,7 @@ You can also use a UI to generate SQL insert table statements.
5152
- http://www.cambiaresearch.com/articles/13/csharp-randomprovider-class
5253
- http://www.codeproject.com/Articles/423229/CsharpRandomStringGenerator
5354
- https://github.com/SaladLab/NetLegacySupport/tree/master/core/ConcurrentDictionary/System/Collections/Concurrent
55+
- https://raw.githubusercontent.com/SimonCropp/NaughtyStrings/master/src/NaughtyStrings/TheNaughtyStrings.cs
5456

5557
### NuGet dependencies
5658
- Fare

src/ConsoleAppClassic/MainTest.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ public static void Run()
165165
var randomizerTimeSpan2 = RandomizerFactory.GetRandomizerAsDynamic(fieldOptionsTimeSpan2);
166166
TimeSpan? ts2 = randomizerTimeSpan2.Generate();
167167
Write(randomizerTimeSpan2, ts2);
168+
169+
var randomizerNaughtyStrings = RandomizerFactory.GetRandomizer(new FieldOptionsTextNaughtyStrings { Categories = "NumericStrings, TrickUnicode" });
170+
string naughtyString = randomizerNaughtyStrings.Generate();
171+
Write(randomizerNaughtyStrings, naughtyString);
172+
173+
var randomizerNaughtyStringsNullCategory = RandomizerFactory.GetRandomizer(new FieldOptionsTextNaughtyStrings());
174+
string naughtyString2 = randomizerNaughtyStringsNullCategory.Generate();
175+
Write(randomizerNaughtyStringsNullCategory, naughtyString2);
168176
}
169177

170178
private static void Write<T>(object randomizer, T value)

src/RandomDataGenerator Solution.sln

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleAppNetCoreApp1", "Co
2424
EndProject
2525
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gui", "gui", "{CD43A6FA-4DEF-47B3-A430-9E7FFAD6B035}"
2626
EndProject
27-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RandomDataGenerator.Gui", "RandomDataGenerator.Gui\RandomDataGenerator.Gui.csproj", "{36D5822C-791D-4F72-9ED4-7DBC164A7E24}"
28-
ProjectSection(ProjectDependencies) = postProject
29-
{D23EB0AA-1EB0-45D6-8985-14CF01CEDD10} = {D23EB0AA-1EB0-45D6-8985-14CF01CEDD10}
30-
EndProjectSection
31-
EndProject
3227
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Example Project Files", "Example Project Files", "{E32DF9EB-603F-494D-A4BB-34CF2321F545}"
3328
ProjectSection(SolutionItems) = preProject
3429
..\Example Project Files\My Project.xml = ..\Example Project Files\My Project.xml
@@ -38,7 +33,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleAppNetCoreApp2", "Co
3833
EndProject
3934
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RandomDataGenerator.Gui3", "RandomDataGenerator.Gui3\RandomDataGenerator.Gui3.csproj", "{090EDB20-CA63-473A-BA68-591BCCCB9D11}"
4035
EndProject
41-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsFormsApp", "WindowsFormsApp\WindowsFormsApp.csproj", "{E41735B3-EA20-40E0-A1F9-E7280FA0FB96}"
36+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RandomDataGenerator.Gui", "RandomDataGenerator.Gui\RandomDataGenerator.Gui.csproj", "{3800D752-F2D0-42E4-8EEC-FE60702F18AC}"
4237
EndProject
4338
Global
4439
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -58,10 +53,6 @@ Global
5853
{983EAE55-828B-4135-A1C6-BF7A1BA193EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
5954
{983EAE55-828B-4135-A1C6-BF7A1BA193EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
6055
{983EAE55-828B-4135-A1C6-BF7A1BA193EE}.Release|Any CPU.Build.0 = Release|Any CPU
61-
{36D5822C-791D-4F72-9ED4-7DBC164A7E24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
62-
{36D5822C-791D-4F72-9ED4-7DBC164A7E24}.Debug|Any CPU.Build.0 = Debug|Any CPU
63-
{36D5822C-791D-4F72-9ED4-7DBC164A7E24}.Release|Any CPU.ActiveCfg = Release|Any CPU
64-
{36D5822C-791D-4F72-9ED4-7DBC164A7E24}.Release|Any CPU.Build.0 = Release|Any CPU
6556
{6AB9BD42-8B23-425C-9B5D-B97A52F008BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
6657
{6AB9BD42-8B23-425C-9B5D-B97A52F008BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
6758
{6AB9BD42-8B23-425C-9B5D-B97A52F008BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -70,10 +61,10 @@ Global
7061
{090EDB20-CA63-473A-BA68-591BCCCB9D11}.Debug|Any CPU.Build.0 = Debug|Any CPU
7162
{090EDB20-CA63-473A-BA68-591BCCCB9D11}.Release|Any CPU.ActiveCfg = Release|Any CPU
7263
{090EDB20-CA63-473A-BA68-591BCCCB9D11}.Release|Any CPU.Build.0 = Release|Any CPU
73-
{E41735B3-EA20-40E0-A1F9-E7280FA0FB96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
74-
{E41735B3-EA20-40E0-A1F9-E7280FA0FB96}.Debug|Any CPU.Build.0 = Debug|Any CPU
75-
{E41735B3-EA20-40E0-A1F9-E7280FA0FB96}.Release|Any CPU.ActiveCfg = Release|Any CPU
76-
{E41735B3-EA20-40E0-A1F9-E7280FA0FB96}.Release|Any CPU.Build.0 = Release|Any CPU
64+
{3800D752-F2D0-42E4-8EEC-FE60702F18AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
65+
{3800D752-F2D0-42E4-8EEC-FE60702F18AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
66+
{3800D752-F2D0-42E4-8EEC-FE60702F18AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
67+
{3800D752-F2D0-42E4-8EEC-FE60702F18AC}.Release|Any CPU.Build.0 = Release|Any CPU
7768
EndGlobalSection
7869
GlobalSection(SolutionProperties) = preSolution
7970
HideSolutionNode = FALSE
@@ -82,10 +73,9 @@ Global
8273
{D23EB0AA-1EB0-45D6-8985-14CF01CEDD10} = {204BD573-1779-4EC8-AE0B-70E5C72ABAE9}
8374
{FEF862C9-B401-42AB-B753-C877FB11D4CD} = {F8306255-6F4A-4E70-9932-06B2A3C9DF78}
8475
{983EAE55-828B-4135-A1C6-BF7A1BA193EE} = {F8306255-6F4A-4E70-9932-06B2A3C9DF78}
85-
{36D5822C-791D-4F72-9ED4-7DBC164A7E24} = {CD43A6FA-4DEF-47B3-A430-9E7FFAD6B035}
8676
{6AB9BD42-8B23-425C-9B5D-B97A52F008BE} = {F8306255-6F4A-4E70-9932-06B2A3C9DF78}
8777
{090EDB20-CA63-473A-BA68-591BCCCB9D11} = {CD43A6FA-4DEF-47B3-A430-9E7FFAD6B035}
88-
{E41735B3-EA20-40E0-A1F9-E7280FA0FB96} = {CD43A6FA-4DEF-47B3-A430-9E7FFAD6B035}
78+
{3800D752-F2D0-42E4-8EEC-FE60702F18AC} = {CD43A6FA-4DEF-47B3-A430-9E7FFAD6B035}
8979
EndGlobalSection
9080
GlobalSection(ExtensibilityGlobals) = postSolution
9181
SolutionGuid = {F00DE8F4-BF0D-49C3-8854-600E8142BE41}

src/RandomDataGenerator.Gui/Data/DataManager.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
namespace RandomDataGenerator.Gui.Data
77
{
8-
public class DataManager
8+
public class FieldManager
99
{
1010
private readonly IList<Field> _fields = new List<Field>();
1111

12-
public DataManager()
12+
public FieldManager()
1313
{
1414
_fields.Add(new Field
1515
{
@@ -65,6 +65,7 @@ public DataManager()
6565
new SubField { SubFieldType = SubFieldType.TextPattern },
6666
new SubField { SubFieldType = SubFieldType.TextRegex },
6767
new SubField { SubFieldType = SubFieldType.TextWords },
68+
new SubField { SubFieldType = SubFieldType.TextNaughtyStrings },
6869
// new SubField { SubFieldType = SubFieldType.TextLipsum }
6970
}
7071
});

0 commit comments

Comments
 (0)