コード例 #1
0
        public void GetIgnoreFiles()
        {
            var context = A.Fake<ITaskContext>();
            var task = new IncrementVersionNumbersInFiles();

            const string Good = "asdf.txt";
            const string Good2 = "asdf.txt,abcd.txt";
            const string Good3 = "asdf.txt,abcd.txt,   ,face.jim";

            var goodres = new []{ "asdf.txt" };
            var goodres2 = new []{ "asdf.txt","abcd.txt" };
            var goodres3 = new []{ "asdf.txt","abcd.txt","face.jim" };

            string bad = null;
            const string Bad2 = "";

            string[] res = null;
            Assert.DoesNotThrow(() =>res = task.GetIgnoreFiles(context,Good));
            Assert.AreEqual(goodres,res);

            Assert.DoesNotThrow(()=>res = task.GetIgnoreFiles(context,Good2));
            Assert.AreEqual(goodres2,res);

            Assert.DoesNotThrow(()=>res = task.GetIgnoreFiles(context,Good3));
            Assert.AreEqual(goodres3,res);

            Assert.Throws<NullReferenceException>(() => res = task.GetIgnoreFiles(context, bad));

            Assert.DoesNotThrow(()=> res = task.GetIgnoreFiles(context,Bad2));
            Assert.AreEqual(new string[0],res);
        }
コード例 #2
0
        public void ProcessFile()
        {
            var fileSystem = A.Fake<IFileSystem>();
            A.CallTo(()=>fileSystem.Path).Returns(A.Fake<PathBase>(x=>x.Wrapping(new PathWrapper())));
            var context = A.Fake<ITaskContext>(x=>x.Wrapping(new TaskContext(A.Fake<ILog>(),fileSystem)));
            var task = new IncrementVersionNumbersInFiles();

            const string CurrentVersion = "3.0.0.0";
            const string CurrentReleaseVersion = "3.0.0.0";
            const string CurrentTestVersion = "3.0.0.0";
            const string NewVersion = "3.0.0.1";

            const string NoVersion = "asldkfjaw faowkjef awoeijf a;sodkfjaw oeifjaw\nfawo\teifj\tawoef";
            const string NoVersionResult = NoVersion;
            const string HasVersion = "falskdjfawoeka wef\n\r\n\tlaskdjfaoweifjaw awoiefjaw" + CurrentVersion + "fjowiejf\n";
            var HasVersionResult = HasVersion.Replace(CurrentVersion,NewVersion);

            var passFile = A.Fake<FileInfoBase>();

            context.Data["WorkingDirectory"] = "c:\\asdf\\";
            context.Data["Mode"] = "test";

            A.CallTo(() => passFile.FullName).Returns(task.GetUpdateFiles(context).First());
            var a = task.GetUpdateFiles(context).First();
            Debug.WriteLine(a);
            A.CallTo(() => passFile.Name).Returns(new FileInfo(task.GetUpdateFiles(context).First()).Name);

            var fileContents = "";
            A.CallTo(() => fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored))
             .Invokes(new Action<string, string>((s, s1) => fileContents = s1));

            // has version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(HasVersion);
            Assert.DoesNotThrow(() => task.ProcessFile(context, passFile, CurrentVersion, CurrentReleaseVersion, CurrentTestVersion,NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            Assert.AreEqual(HasVersionResult,fileContents);

            // no version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(NoVersion);
            Assert.DoesNotThrow(() => task.ProcessFile(context, passFile, CurrentVersion, CurrentReleaseVersion, CurrentTestVersion, NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Times(2));
            Assert.AreEqual("",fileContents);
        }
コード例 #3
0
        public void GetUpdateFiles()
        {
            var fileSystem = A.Fake<IFileSystem>();
            A.CallTo(() => fileSystem.Path).Returns(A.Fake<PathBase>(x => x.Wrapping(new PathWrapper())));
            var context = A.Fake<ITaskContext>(x=>x.Wrapping(new TaskContext(A.Fake<ILog>(),fileSystem)));
            var task = new IncrementVersionNumbersInFiles();

            //A.CallTo(() => task.CreateUpdateString(A<ITaskContext>.Ignored, A<string>.Ignored)).Returns("");
            context.Data["WorkingDirectory"] = "";
            context.Data["Mode"] = "release";

            // Test modes
            context.Data["Mode"] = "release";
            Assert.DoesNotThrow(()=>task.GetUpdateFiles(context));
            Assert.AreEqual(28,task.GetUpdateFiles(context).Length);
            context.Data["Mode"] = "test";
            Assert.DoesNotThrow(() => task.GetUpdateFiles(context));
            Assert.AreEqual(28,task.GetUpdateFiles(context).Length);
            context.Data["Mode"] = "a";
            Assert.Throws<InvalidOperationException>(() => task.GetUpdateFiles(context));

            string[] result = null;

            // Release Mode Specific Files
            context.Data["Mode"] = "release";
            result = task.GetUpdateFiles(context);
            Assert.True(result.Any(x => x.Contains("deploy\\currentversion.txt")));
            Assert.True(result.Any(x => x.Contains("installer\\Install.nsi")));
            Assert.True(result.Any(x => x.Contains("octgnFX\\Octgn\\CurrentReleaseVersion.txt")));
            Assert.False(result.Any(x => x.Contains("deploy\\currentversiontest.txt")));
            Assert.False(result.Any(x => x.Contains("installer\\InstallTest.nsi")));
            Assert.False(result.Any(x => x.Contains("octgnFX\\Octgn\\CurrentTestVersion.txt")));

            // Release Mode Specific Files
            context.Data["Mode"] = "test";
            result = task.GetUpdateFiles(context);
            Assert.True(result.Any(x => x.Contains("deploy\\currentversiontest.txt")));
            Assert.True(result.Any(x => x.Contains("installer\\InstallTest.nsi")));
            Assert.True(result.Any(x => x.Contains("octgnFX\\Octgn\\CurrentTestVersion.txt")));
            Assert.False(result.Any(x => x.Contains("deploy\\currentversion.txt")));
            Assert.False(result.Any(x => x.Contains("installer\\Install.nsi")));
            Assert.False(result.Any(x => x.Contains("octgnFX\\Octgn\\CurrentReleaseVersion.txt")));
        }
コード例 #4
0
        public void ProcessFile()
        {
            var fileSystem = A.Fake<IFileSystem>();
            var context = A.Fake<ITaskContext>(x=>x.Wrapping(new TaskContext(A.Fake<ILog>(),fileSystem)));
            var task = new IncrementVersionNumbersInFiles();

            const string CurrentVersion = "3.0.0.0";
            const string NewVersion = "3.0.0.1";

            const string NoVersion = "asldkfjaw faowkjef awoeijf a;sodkfjaw oeifjaw\nfawo\teifj\tawoef";
            const string NoVersionResult = NoVersion;
            const string HasVersion = "falskdjfawoeka wef\n\r\n\tlaskdjfaoweifjaw awoiefjaw" + CurrentVersion + "fjowiejf\n";
            var HasVersionResult = HasVersion.Replace(CurrentVersion,NewVersion);

            var ignoreFiles = new[] { "ignore1.txt", "ignore2.txt" };
            var passFile = A.Fake<FileInfoBase>();
            var nonpassFile = A.Fake<FileInfoBase>();

            context.Data["WorkingDirectory"] = "c:\\asdf\\";
            context.Data["Mode"] = "test";

            A.CallTo(() => passFile.FullName).Returns(@"c:\face\brains\t**s.txt");
            A.CallTo(() => nonpassFile.FullName).Returns(@"c:\face\brains\ignore2.txt");
            A.CallTo(() => passFile.Name).Returns(@"t**s.txt");
            A.CallTo(() => nonpassFile.Name).Returns(@"ignore2.txt");

            var fileContents = "";
            A.CallTo(() => fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored))
             .Invokes(new Action<string, string>((s, s1) => fileContents = s1));

            // file allowed, has version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(HasVersion);
            Assert.DoesNotThrow(()=>task.ProcessFile(context,passFile,ignoreFiles,CurrentVersion,NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            Assert.AreEqual(HasVersionResult,fileContents);

            // file allowed, no version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(NoVersion);
            Assert.DoesNotThrow(() => task.ProcessFile(context, passFile, ignoreFiles, CurrentVersion, NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Times(2));
            Assert.AreEqual("",fileContents);

            // file not allowed, has version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(HasVersion);
            Assert.DoesNotThrow(() => task.ProcessFile(context, nonpassFile, ignoreFiles, CurrentVersion, NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Times(2));
            Assert.AreEqual("",fileContents);

            // file not allowed, has no version
            fileContents = "";
            A.CallTo(() => fileSystem.File.ReadAllText(A<string>.Ignored)).Returns(NoVersion);
            Assert.DoesNotThrow(() => task.ProcessFile(context, nonpassFile, ignoreFiles, CurrentVersion, NewVersion));
            A.CallTo(()=>fileSystem.File.WriteAllText(A<string>.Ignored, A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(()=>fileSystem.File.ReadAllText(A<string>.Ignored)).MustHaveHappened(Repeated.Exactly.Times(2));
            Assert.AreEqual("",fileContents);
        }