public void Pass_UpdateVersionInfo() { // Setup var manifestMock = new Mock <IProjectManifest>(); var protectionLevel = Fakes.RandomEnum <ProtectionLevel>(); manifestMock.SetupGet(m => m.ProtectionLevel).Returns(protectionLevel); manifestMock.SetupAllProperties(); var manifest = manifestMock.Object; var project = new Project(); typeof(Project).GetField("_projectManifest", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(project, manifest); typeof(Project).GetField("_isLoaded", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(project, true); // Execute project.VersionMajor = Fakes.RandomInt(0, 100); project.VersionMinor = Fakes.RandomInt(0, 100); project.VersionBuild = Fakes.RandomInt(0, 100); project.VersionComments = Fakes.RandomString(); project.Description = Fakes.RandomString(); // Assert Assert.Equal(project.VersionMajor, manifest.VersionMajor); Assert.Equal(project.VersionMinor, manifest.VersionMinor); Assert.Equal(project.VersionBuild, manifest.VersionBuild); Assert.Equal(project.VersionComments, manifest.VersionComments); Assert.Equal(project.Description, manifest.Description); Assert.Equal(project.ProtectionLevel, manifest.ProtectionLevel); }
private static IDictionary <string, IParameter> GenerateRandomParameters() { var parameters = new Dictionary <string, IParameter>(); var rnd = new Random(); for (var cnt = 0; cnt < rnd.Next(30, 100); cnt++) { var parameterMock = new Mock <IParameter>(); parameterMock.Setup(p => p.Name).Returns(Fakes.RandomString()); parameterMock.Setup(p => p.Value).Returns(Fakes.RandomString()); parameterMock.Setup(p => p.ParameterDataType).Returns(typeof(string)); parameterMock.Setup(p => p.Sensitive).Returns(Fakes.RandomBool()); parameterMock.Setup(p => p.Source).Returns(Fakes.RandomEnum <ParameterSource>()); parameters.Add(parameterMock.Object.Name, parameterMock.Object); } return(parameters); }
public void Pass_New_ProjectParameter_InvalidDataType() { // Setup var name = Fakes.RandomString(); var value = Fakes.RandomString(); var scope = Fakes.RandomString(); var xmldoc = new XmlDocument(); var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>()); xmldoc.LoadXml(parameterXml); var dataTypeNode = xmldoc.SelectSingleNode("//*[@SSIS:Name=\"DataType\"]", xmldoc.GetNameSpaceManager()); if (dataTypeNode != null) { dataTypeNode.InnerText = "xyz"; } // Execute var parameter = new ProjectParameter(scope, xmldoc.DocumentElement); // Assert Assert.NotNull(parameter); Assert.Equal(null, parameter.ParameterDataType?.Name); }
public void Fail_New_ProjectParameter_EmptyName() { // Setup var name = string.Empty; var value = Fakes.RandomString(); var xmldoc = new XmlDocument(); var parameterXml = XmlGenerators.ProjectFileParameter(name, value, Fakes.RandomBool(), Fakes.RandomEnum <DataType>(), Fakes.RandomBool()); xmldoc.LoadXml(parameterXml); // Execute var exception = Record.Exception(() => new ProjectParameter(Fakes.RandomString(), xmldoc.DocumentElement)); // Assert Assert.NotNull(exception); Assert.IsType <InvalidXmlException>(exception); Assert.Equal(xmldoc.DocumentElement?.OuterXml, ((InvalidXmlException)exception).NodeXml); Assert.NotNull(exception.Message); }
public void Fail_New_ProjectParameter_NoScope() { // Setup var name = Fakes.RandomString(); var value = Fakes.RandomString(); var xmldoc = new XmlDocument(); var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>()); xmldoc.LoadXml(parameterXml); // Execute var exception = Record.Exception(() => new ProjectParameter(null, xmldoc.DocumentElement)); // Assert Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); }
public void Fail_New_ProjectParameter_InvalidDataType() { // Setup var name = Fakes.RandomString(); var value = Fakes.RandomString(); var scope = Fakes.RandomString(); var xmldoc = new XmlDocument(); var parameterXml = XmlGenerators.ProjectFileParameter(name, value, false, Fakes.RandomEnum <DataType>()); xmldoc.LoadXml(parameterXml); var dataTypeNode = xmldoc.SelectSingleNode("//*[@SSIS:Name=\"DataType\"]", xmldoc.GetNameSpaceManager()); if (dataTypeNode != null) { dataTypeNode.InnerText = "xyz"; } // Execute var exception = Record.Exception(() => new ProjectParameter(scope, xmldoc.DocumentElement)); // Assert Assert.NotNull(exception); Assert.IsType <InvalidCastException>(exception); }
public void Pass_OriginalParameters() { // Setup var manifestMock = new Mock <IProjectManifest>(); var manifestParameters = new[] { CreateParameter($"Project::{Fakes.RandomString()}", Fakes.RandomString(), Fakes.RandomBool(), Fakes.RandomEnum <ParameterSource>()), CreateParameter($"Project::{Fakes.RandomString()}", Fakes.RandomString(), Fakes.RandomBool(), Fakes.RandomEnum <ParameterSource>()), }.ToDictionary(p => p.Name, p => p); manifestMock.Setup(m => m.Parameters).Returns(manifestParameters); var manifest = manifestMock.Object; var projectParamsMock = new Mock <IProjectFile>(); var projectParameters = new[] { CreateParameter($"Project::{Fakes.RandomString()}", Fakes.RandomString(), Fakes.RandomBool(), Fakes.RandomEnum <ParameterSource>()), CreateParameter($"Project::{Fakes.RandomString()}", Fakes.RandomString(), Fakes.RandomBool(), Fakes.RandomEnum <ParameterSource>()), }.ToDictionary(p => p.Name, p => p); projectParamsMock.Setup(m => m.Parameters).Returns(projectParameters); var projectParams = projectParamsMock.Object; // Execute var project = new Project(); typeof(Project).GetField("_projectManifest", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(project, manifest); typeof(Project).GetField("_projectParams", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(project, projectParams); typeof(Project).GetField("_isLoaded", BindingFlags.NonPublic | BindingFlags.Instance)?.SetValue(project, true); // Assert Assert.Equal(4, project.Parameters.Count); foreach (var parameter in projectParameters) { Assert.True(project.Parameters.ContainsKey(parameter.Key)); Assert.Equal(parameter.Value.Value, project.Parameters[parameter.Key].Value); Assert.Equal(parameter.Value.ParameterDataType, project.Parameters[parameter.Key].ParameterDataType); Assert.Equal(parameter.Value.Sensitive, project.Parameters[parameter.Key].Sensitive); Assert.Equal(parameter.Value.Source, project.Parameters[parameter.Key].Source); } foreach (var parameter in manifestParameters) { Assert.True(project.Parameters.ContainsKey(parameter.Key)); Assert.Equal(parameter.Value.Value, project.Parameters[parameter.Key].Value); Assert.Equal(parameter.Value.ParameterDataType, project.Parameters[parameter.Key].ParameterDataType); Assert.Equal(parameter.Value.Sensitive, project.Parameters[parameter.Key].Sensitive); Assert.Equal(parameter.Value.Source, project.Parameters[parameter.Key].Source); } }