Files
reswcodegen/vs2013/ReswCodeGen.Tests/VisualBasicCodeGeneratorInternalTests.cs
T
2017-11-09 09:47:38 +01:00

70 lines
2.4 KiB
C#

using System.IO;
using System.Linq;
using System.Reflection;
using ChristianHelle.DeveloperTools.CodeGenerators.Resw.VSPackage.CustomTool;
using Microsoft.VisualBasic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace ChristianHelle.DeveloperTools.CodeGenerators.Resw.CustomTool.Tests
{
[TestClass]
[DeploymentItem("Resources/Resources.resw")]
public class VisualBasicCodeGeneratorInternalTests
{
private const string FILE_PATH = "Resources.resw";
private string actual;
private string reswFileContents;
private ICodeGenerator target;
[TestInitialize]
public void Initialize()
{
reswFileContents = File.ReadAllText(FILE_PATH);
target = new CodeGeneratorFactory().Create(FILE_PATH.Replace(".resw", string.Empty), "TestApp", reswFileContents, new VBCodeProvider(), TypeAttributes.NestedAssembly);
actual = target.GenerateCode();
}
[TestMethod]
public void GenerateCodeDoesNotReturnNull()
{
Assert.IsNotNull(actual);
}
[TestMethod]
public void GeneratedCodeIsFriendClass()
{
Assert.IsTrue(actual.Contains("Partial Friend Class"));
}
[TestMethod]
public void GeneratedCodeContainsPropertiesDefinedInResources()
{
var resourceItems = target.ResourceParser.Parse();
foreach (var item in resourceItems.Where(item => !item.Name.Contains(".")))
Assert.IsTrue(actual.Contains("Public Shared ReadOnly Property " + item.Name + "() As String"));
}
[TestMethod]
public void GeneratedCodePropertiesContainsCommentsSimilarToValuesDefinedInResources()
{
var resourceItems = target.ResourceParser.Parse();
foreach (var item in resourceItems.Where(item => !item.Name.Contains(".")))
Assert.IsTrue(actual.Contains("Localized resource similar to \"" + item.Value + "\""));
}
[TestMethod]
public void ClassNameEqualsFileNameWithoutExtension()
{
Assert.IsTrue(actual.Contains("Class Resources"));
}
[TestMethod]
public void ResourceLoaderInitializedWithClassName()
{
Assert.IsTrue(actual.Contains("ResourceLoader.GetForCurrentView(currentAssemblyName + \"/Resources\")"));
}
}
}