public void WithAssemblyVersion_CanBeCalledMoreThanOnce()
        {
            var builder = new AssemblyInfoBuilder(new CSharpCodeProvider());
            builder
                .WithAssemblyVersion(new Version(4, 3, 2, 1))
                .WithAssemblyVersion(new Version(3, 0, 0, 0));
            var assemblyInfo = builder.Build();

            Assert.Contains("[assembly: System.Reflection.AssemblyVersionAttribute(\"3.0.0.0\")]", assemblyInfo);
        }
        public void WithAssemblyVersion_WithVersion_BuildsCorrectAssemblyInfo()
        {
            var builder = new AssemblyInfoBuilder(new CSharpCodeProvider());
            builder.WithAssemblyVersion(new Version(4, 3, 2, 1));
            var assemblyInfo = builder.Build();

            Assert.Contains("[assembly: System.Reflection.AssemblyVersionAttribute(\"4.3.2.1\")]", assemblyInfo);
        }
        /// <summary>
        /// Executes the task.
        /// </summary>
        /// <returns>
        /// <see langword="true"/> if the task was executed successfully; otherwise, <see langword="false"/>.
        /// </returns>
        public override bool Execute()
        {
            CodeDomProvider provider = CodeDomProvider.CreateProvider(Language);
            AssemblyInfoBuilder generator = new AssemblyInfoBuilder(CodeDomProvider.CreateProvider(Language));

            if (CLSCompliant)
            {
                Log.LogMessage("Adding CLSCompliantAttribute.");
                generator.WithCLSCompliant(true);
            }

            if (!string.IsNullOrWhiteSpace(AssemblyVersion))
            {
                Log.LogMessage("Adding AssemblyVersionAttribute ({0}).", AssemblyVersion);
                generator.WithAssemblyVersion(new Version(AssemblyVersion));
            }

            if (!string.IsNullOrWhiteSpace(AssemblyFileVersion))
            {
                Log.LogMessage("Adding AssemblyFileVersionAttribute ({0}).", AssemblyFileVersion);
                generator.WithAssemblyFileVersion(new Version(AssemblyFileVersion));
            }

            if (!string.IsNullOrWhiteSpace(AssemblyInformationalVersion))
            {
                Log.LogMessage("Adding AssemblyInformationalVersionAttribute ({0}).", AssemblyInformationalVersion);
                generator.WithAssemblyInformationalVersion(AssemblyInformationalVersion);
            }

            generator.Save(FileName);
            Log.LogMessage("AssemblyInfo file saved to '{0}'.", FileName);

            return true;
        }