implemented codedom basd code generation

This commit is contained in:
Christian Resma Helle
2012-11-08 22:30:53 +01:00
parent 1559769152
commit d8dc5195b6
9 changed files with 276 additions and 3 deletions
@@ -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" />