Skip to content

Commit

Permalink
Fix empty root namespace regression
Browse files Browse the repository at this point in the history
  • Loading branch information
idg10 committed Jan 9, 2020
1 parent 6469129 commit 353e833
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
<SourceSpecFlowAssemblyHooksFile Condition="'$(SourceSpecFlowAssemblyHooksFile)' == ''">$(MSBuildThisFileDirectory)MSTest.AssemblyHooks$(DefaultLanguageSourceExtension)</SourceSpecFlowAssemblyHooksFile>
<GenerateSpecFlowAssemblyHooksFile Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == ''">true</GenerateSpecFlowAssemblyHooksFile>
<GeneratedSpecFlowAssemblyHooksFile>$(ProjectDir)$([MSBuild]::Unescape('$(IntermediateOutputPath)'))MSTest.AssemblyHooks$(DefaultLanguageSourceExtension)</GeneratedSpecFlowAssemblyHooksFile>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' != ''">$(RootNamespace)</_SpecFlow_EffectiveRootNamespace>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' == ''">SpecFlow.GeneratedTests</_SpecFlow_EffectiveRootNamespace>
</PropertyGroup>

<Target Name="GenerateSpecFlowAssemblyHooksFileTask" Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == 'true' AND '$(_SpecFlow_Tools_MsBuild_Generation_Imported)' == 'true'">
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(RootNamespace.Replace('.', '_'))" />
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(_SpecFlow_EffectiveRootNamespace.Replace('.', '_'))" />
<ItemGroup Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'">
<Compile Include="$(GeneratedSpecFlowAssemblyHooksFile)"/>
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@
<SourceSpecFlowAssemblyHooksFile Condition="'$(SourceSpecFlowAssemblyHooksFile)' == ''">$(MSBuildThisFileDirectory)NUnit.AssemblyHooks$(DefaultLanguageSourceExtension)</SourceSpecFlowAssemblyHooksFile>
<GenerateSpecFlowAssemblyHooksFile Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == ''">true</GenerateSpecFlowAssemblyHooksFile>
<GeneratedSpecFlowAssemblyHooksFile>$(ProjectDir)$([MSBuild]::Unescape('$(IntermediateOutputPath)'))NUnit.AssemblyHooks$(DefaultLanguageSourceExtension)</GeneratedSpecFlowAssemblyHooksFile>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' != ''">$(RootNamespace)</_SpecFlow_EffectiveRootNamespace>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' == ''">SpecFlow.GeneratedTests</_SpecFlow_EffectiveRootNamespace>
</PropertyGroup>

<Target Name="GenerateSpecFlowAssemblyHooksFileTask" Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == 'true' AND '$(_SpecFlow_Tools_MsBuild_Generation_Imported)' == 'true'">
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(RootNamespace.Replace('.', '_'))" />
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(_SpecFlow_EffectiveRootNamespace.Replace('.', '_'))" />
<ItemGroup Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'">
<Compile Include="$(GeneratedSpecFlowAssemblyHooksFile)"/>
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,12 @@
<SourceSpecFlowAssemblyHooksFile Condition="'$(SourceSpecFlowAssemblyHooksFile)' == ''">$(MSBuildThisFileDirectory)xUnit.AssemblyHooks$(DefaultLanguageSourceExtension)</SourceSpecFlowAssemblyHooksFile>
<GenerateSpecFlowAssemblyHooksFile Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == ''">true</GenerateSpecFlowAssemblyHooksFile>
<GeneratedSpecFlowAssemblyHooksFile>$(ProjectDir)$([MSBuild]::Unescape('$(IntermediateOutputPath)'))xUnit.AssemblyHooks$(DefaultLanguageSourceExtension)</GeneratedSpecFlowAssemblyHooksFile>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' != ''">$(RootNamespace)</_SpecFlow_EffectiveRootNamespace>
<_SpecFlow_EffectiveRootNamespace Condition="'$(RootNamespace)' == ''">SpecFlow.GeneratedTests</_SpecFlow_EffectiveRootNamespace>
</PropertyGroup>

<Target Name="GenerateSpecFlowAssemblyHooksFileTask" Condition="'$(GenerateSpecFlowAssemblyHooksFile)' == 'true' AND '$(_SpecFlow_Tools_MsBuild_Generation_Imported)' == 'true'">
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(RootNamespace.Replace('.', '_'))" />
<ReplaceTokenInFileTask Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'" InputFile="$(SourceSpecFlowAssemblyHooksFile)" OutputFile="$(GeneratedSpecFlowAssemblyHooksFile)" TextToReplace="PROJECT_ROOT_NAMESPACE" TextToReplaceWith="$(_SpecFlow_EffectiveRootNamespace.Replace('.', '_'))" />
<ItemGroup Condition="'$(Language)' == 'VB' or '$(Language)' == 'C#'">
<Compile Include="$(GeneratedSpecFlowAssemblyHooksFile)"/>
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,50 @@ public void Execute_AllPropertiesAreSet_ShouldWork()
result.Should().BeTrue();
}

[Fact]
public void Execute_RootNamespaceEmpty_ShouldWork()
{
//ARRANGE
var generateFeatureFileCodeBehindTask = new GenerateFeatureFileCodeBehindTask
{
RootNamespace = "",
ProjectPath = "ProjectPath.csproj",
FeatureFiles = new TaskItem[0],
GeneratorPlugins = new TaskItem[0],
BuildEngine = new MockBuildEngine(_output),
CodeBehindGenerator = GetFeatureFileCodeBehindGeneratorMock().Object,
AnalyticsTransmitter = GetAnalyticsTransmitterMock().Object
};

//ACT
bool result = generateFeatureFileCodeBehindTask.Execute();

//ASSERT
result.Should().BeTrue();
}

[Fact]
public void Execute_RootNamespaceNull_ShouldWork()
{
//ARRANGE
var generateFeatureFileCodeBehindTask = new GenerateFeatureFileCodeBehindTask
{
RootNamespace = null,
ProjectPath = "ProjectPath.csproj",
FeatureFiles = new TaskItem[0],
GeneratorPlugins = new TaskItem[0],
BuildEngine = new MockBuildEngine(_output),
CodeBehindGenerator = GetFeatureFileCodeBehindGeneratorMock().Object,
AnalyticsTransmitter = GetAnalyticsTransmitterMock().Object
};

//ACT
bool result = generateFeatureFileCodeBehindTask.Execute();

//ASSERT
result.Should().BeTrue();
}

[Fact]
public void Execute_FeatureFilesNotSet_ShouldWork()
{
Expand Down
5 changes: 5 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
3.1 - 2020-01-08

Fixes:
+ Support for empty RootNamespace broken in 3.1 https://github.com/techtalk/SpecFlow/issues/1846

3.1 - 2019-12-19

Features:
Expand Down

0 comments on commit 353e833

Please sign in to comment.