コード例 #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);
        }
コード例 #2
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);
        }