implemented codedom basd code generation
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
using System.IO;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.CustomTool.Tests
|
||||
{
|
||||
[TestClass]
|
||||
[DeploymentItem("Resources/Resources.resw")]
|
||||
public class CodeGeneratorFactoryTests
|
||||
{
|
||||
private string reswFileContents;
|
||||
|
||||
[TestInitialize]
|
||||
public void Initialize()
|
||||
{
|
||||
reswFileContents = File.ReadAllText("Resources.resw");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void CodeGeneratorFactoryReturnsValidInstance()
|
||||
{
|
||||
var target = new CodeGeneratorFactory();
|
||||
var actual = target.Create("TestApp", reswFileContents);
|
||||
Assert.IsNotNull(actual);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.CustomTool.Tests
|
||||
{
|
||||
[TestClass]
|
||||
[DeploymentItem("Resources/Resources.resw")]
|
||||
public class CodeGeneratorTests
|
||||
{
|
||||
private string reswFileContents;
|
||||
|
||||
[TestInitialize]
|
||||
public void Initialize()
|
||||
{
|
||||
reswFileContents = File.ReadAllText("Resources.resw");
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GenerateCodeDoesNotReturnNull()
|
||||
{
|
||||
var target = new CodeGeneratorFactory().Create("TestApp", reswFileContents);
|
||||
var actual = target.GenerateCode();
|
||||
Assert.IsNotNull(actual);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GeneratedCodeContainsPropertiesDefinedInResources()
|
||||
{
|
||||
var target = new CodeGeneratorFactory().Create("TestApp", reswFileContents);
|
||||
var resourceItems = target.ResourceParser.Parse();
|
||||
var actual = target.GenerateCode();
|
||||
|
||||
foreach (var item in resourceItems.Where(item => !item.Name.Contains(".")))
|
||||
Assert.IsTrue(actual.Contains("public static string " + item.Name));
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void GeneratedCodePropertiesContainsCommentsSimilarToValuesDefinedInResources()
|
||||
{
|
||||
var target = new CodeGeneratorFactory().Create("TestApp", reswFileContents);
|
||||
var resourceItems = target.ResourceParser.Parse();
|
||||
var actual = target.GenerateCode();
|
||||
|
||||
foreach (var item in resourceItems.Where(item => !item.Name.Contains(".")))
|
||||
Assert.IsTrue(actual.Contains("Localized resource similar to \"" + item.Value + "\""));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,5 +61,50 @@ namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.CustomTool.Tests
|
||||
|
||||
CollectionAssert.AllItemsAreNotNull(list);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ConstructorSetsReswFileContents()
|
||||
{
|
||||
var target = new ResourceParser(reswFileContents);
|
||||
Assert.IsNotNull(target.ReswFileContents);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ParseReturnsResourceItems()
|
||||
{
|
||||
var target = new ResourceParser(reswFileContents);
|
||||
var actual = target.Parse();
|
||||
Assert.IsNotNull(actual);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ParseReturnedResourceItemsContainsName()
|
||||
{
|
||||
var target = new ResourceParser(reswFileContents);
|
||||
var actual = target.Parse();
|
||||
|
||||
foreach (var item in actual)
|
||||
Assert.IsNotNull(item.Name);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ParseReturnedResourceItemsContainsValue()
|
||||
{
|
||||
var target = new ResourceParser(reswFileContents);
|
||||
var actual = target.Parse();
|
||||
|
||||
foreach (var item in actual)
|
||||
Assert.IsNotNull(item.Value);
|
||||
}
|
||||
|
||||
[TestMethod]
|
||||
public void ParseReturnedResourceItemsContainsComment()
|
||||
{
|
||||
var target = new ResourceParser(reswFileContents);
|
||||
var actual = target.Parse();
|
||||
|
||||
foreach (var item in actual)
|
||||
Assert.IsNotNull(item.Comment);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,8 @@
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
<ItemGroup>
|
||||
<Compile Include="CodeGeneratorFactoryTests.cs" />
|
||||
<Compile Include="CodeGeneratorTests.cs" />
|
||||
<Compile Include="ResourceParserTests.cs" />
|
||||
<Compile Include="Spikes.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
|
||||
Reference in New Issue
Block a user