-
-
Notifications
You must be signed in to change notification settings - Fork 336
Expand file tree
/
Copy pathCliConfigMapperTest.cs
More file actions
78 lines (74 loc) · 4.68 KB
/
Copy pathCliConfigMapperTest.cs
File metadata and controls
78 lines (74 loc) · 4.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using AutoFixture.NUnit3;
using FluentAssertions;
using NUnit.Framework;
using RevEng.Common;
//using NUnit.Framework.Legacy;
using RevEng.Common.Cli;
using RevEng.Common.Cli.Configuration;
namespace UnitTests
{
[TestFixture]
public class CliConfigMapperTest
{
[Test, AutoData]
public void CanGetOptions(CliConfig config)
{
var options = CliConfigMapper.ToOptions(config, "C:\temp", "C:\tempo");
options.CodeGenerationMode.Should().Be(CodeGenerationMode.EFCore8);
options.ConnectionString.Should().Be(null);
options.ContextClassName.Should().Be(config.Names.DbContextName);
options.ContextNamespace.Should().Be(config.Names.DbContextNamespace);
options.DatabaseType.Should().Be(DatabaseType.Undefined);
options.Dacpac.Should().Be(null);
options.DefaultDacpacSchema.Should().Be(null);
options.FilterSchemas.Should().Be(false);
options.IncludeConnectionString.Should().Be(config.CodeGeneration.EnableOnConfiguring);
options.InstallNuGetPackage.Should().Be(false);
options.ModelNamespace.Should().Be(config.Names.ModelNamespace);
options.OptionsPath.Should().Be(null);
options.OutputContextPath.Should().Be(config.FileLayout.OutputDbContextPath);
options.OutputPath.Should().Be(config.FileLayout.OutputPath);
options.ProjectPath.Should().Be("C:\temp");
options.ProjectRootNamespace.Should().Be(config.Names.RootNamespace);
options.PreserveCasingWithRegex.Should().Be(config.Replacements.PreserveCasingWithRegex);
options.SelectedHandlebarsLanguage.Should().Be(0);
options.SelectedToBeGenerated.Should().Be(0);
options.Tables.Count.Should().BeGreaterThanOrEqualTo(config.Tables.Count);
options.UncountableWords.Should().NotBeEmpty();
options.PluralRules.Should().NotBeEmpty();
options.SingularRules.Should().NotBeEmpty();
options.IrregularWords.Should().NotBeEmpty();
options.UseBoolPropertiesWithoutDefaultSql.Should().Be(config.CodeGeneration.RemoveDefaultSqlFromBoolProperties);
options.UseDatabaseNames.Should().Be(config.CodeGeneration.UseDatabaseNames);
options.UseDatabaseNamesForRoutines.Should().Be(config.CodeGeneration.UseDatabaseNamesForRoutines);
options.UseDateOnlyTimeOnly.Should().Be(config.TypeMappings.UseDateOnlyTimeOnly);
options.UseDbContextSplitting.Should().Be(config.FileLayout.SplitDbContextPreview);
options.UseFluentApiOnly.Should().Be(!config.CodeGeneration.UseDataAnnotations);
options.UseHandleBars.Should().Be(false);
options.UseHierarchyId.Should().Be(config.TypeMappings.UseHierarchyId);
options.UseInflector.Should().Be(config.CodeGeneration.UseInflector);
options.UseLegacyPluralizer.Should().Be(config.CodeGeneration.UseLegacyInflector);
options.UseManyToManyEntity.Should().Be(config.CodeGeneration.UseManyToManyEntity);
options.UseNodaTime.Should().Be(config.TypeMappings.UseNodaTime);
options.UseNoDefaultConstructor.Should().Be(false);
options.UseNoNavigations.Should().Be(config.CodeGeneration.UseNoNavigationsPreview);
options.UseNoObjectFilter.Should().Be(false);
options.UseNullableReferences.Should().Be(config.CodeGeneration.UseNullableReferenceTypes);
options.UseSchemaFolders.Should().Be(config.FileLayout.UseSchemaFoldersPreview);
options.UseSchemaNamespaces.Should().Be(config.FileLayout.UseSchemaNamespacesPreview);
options.UseSpatial.Should().Be(config.TypeMappings.UseSpatial);
options.UseT4.Should().Be(config.CodeGeneration.UseT4);
options.UseT4Split.Should().Be(config.CodeGeneration.UseT4Split);
options.UseTypedTvpParameters.Should().Be(config.CodeGeneration.UseTypedTvpParameters);
// Total should be 55 properties (was 56, removed GenerateEmptyResultType from global config)
options.GetType().GetProperties().Length.Should().Be(55);
config.GetType().GetProperties().Length.Should().Be(10);
config.Names.GetType().GetProperties().Length.Should().Be(4);
// Total should be 24 properties (was 25, removed GenerateEmptyResultType)
config.CodeGeneration.GetType().GetProperties().Length.Should().Be(24);
config.FileLayout.GetType().GetProperties().Length.Should().Be(5);
config.Replacements.GetType().GetProperties().Length.Should().Be(5);
config.TypeMappings.GetType().GetProperties().Length.Should().Be(4);
}
}
}