Exemplo n.º 1
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);
        }
Exemplo n.º 2
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(24, task.GetUpdateFiles(context).Length);
            context.Data["Mode"] = "test";
            Assert.DoesNotThrow(() => task.GetUpdateFiles(context));
            Assert.AreEqual(24, 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")));
        }