public void CacheFileIsMissing() { var stringBuilder = new StringBuilder(); void Action(string s) => stringBuilder.AppendLine(s); var logAppender = new TestLogAppender(Action); log = new Log(logAppender); using var fixture = new EmptyRepositoryFixture(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; fixture.Repository.MakeACommit(); var gitVersionCalculator = GetGitVersionCalculator(gitVersionOptions, log, fixture.Repository.ToGitRepository()); gitVersionCalculator.CalculateVersionVariables(); var logsMessages = stringBuilder.ToString(); logsMessages.ShouldContain("yml not found", Case.Insensitive, logsMessages); }
public void NoWarnOnGitVersionYmlFile() { SetupConfigFileContent(string.Empty); var stringLogger = string.Empty; void Action(string info) => stringLogger = info; var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); var options = Options.Create(new GitVersionOptions { WorkingDirectory = repoPath }); var sp = ConfigureServices(services => { services.AddSingleton(options); services.AddSingleton <ILog>(log); }); configProvider = sp.GetService <IConfigProvider>(); configProvider.Provide(repoPath); stringLogger.Length.ShouldBe(0); }
public void SetUp() { TestLogAppender.Reset(); testContainer = new WindsorContainer(); testContainer.Kernel.Resolver.AddSubResolver(new ArrayResolver(testContainer.Kernel)); testContainer.Install(new WindsorInstaller()); testContainer.Register(Castle.MicroKernel.Registration.Component.For <TestLoggingTarget>()); }
public void Then_A_Method_With_Debug_Should_Log_Stacktrace() { var instance = testContainer.Resolve <TestLoggingTarget>(); instance.DebugMethod(); TestLogAppender.WaitOne(); Assert.That(TestLogAppender.LastEvent.RenderedMessage.Contains("Stacktrace")); }
public void Then_A_Method_With_Info_Should_Be_Logged_Using_Info_Category() { var instance = testContainer.Resolve <TestLoggingTarget>(); instance.InfoMethod(); TestLogAppender.WaitOne(); Assert.That(TestLogAppender.LastEvent, Is.Not.Null); Assert.That(TestLogAppender.LastEvent.Level, Is.EqualTo(Level.Info)); Assert.That(TestLogAppender.LastEvent.RenderedMessage.Contains("InfoMethod")); }
public void Then_A_Method_Call_That_Throws_Should_Be_Logged() { var instance = testContainer.Resolve <TestLoggingTarget>(); try { instance.ExceptionMethod(); } catch {} TestLogAppender.WaitOne(); Assert.That(TestLogAppender.LastEvent, Is.Not.Null); Assert.That(TestLogAppender.LastEvent.Level, Is.EqualTo(Level.Error)); Assert.That(TestLogAppender.LastEvent.RenderedMessage.Contains("A test error that should be visible to the logging framework ... ")); }
public void Then_A_Method_Call_Should_Be_Logged() { var instance = testContainer.Resolve <TestLoggingTarget>(); instance.DebugMethod(); TestLogAppender.WaitOne(); Assert.That(TestLogAppender.LastEvent, Is.Not.Null); Assert.That(TestLogAppender.LastEvent.Level, Is.EqualTo(Level.Debug)); Assert.That(TestLogAppender.LastEvent.RenderedMessage.Contains("DebugMethod")); }
public void UsernameWithoutPassword() { var s = string.Empty; void Action(string info) => s = info; var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); const string repoUrl = "http://[email protected]/DefaultCollection/_git/CAS"; log.Info(repoUrl); s.Contains(repoUrl).ShouldBe(true); }
public void LoggerObscuresPassword(string protocol) { const string username = "******"; const string password = "******"; var s = string.Empty; void Action(string info) => s = info; var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); log.Info($"{protocol}://{username}:{password}@workspace.visualstudio.com/DefaultCollection/_git/CAS"); s.Contains(password).ShouldBe(false); }
public void UpdateWixVersionFileWhenFileAlreadyExists() { var workingDir = Path.GetTempPath(); var semVer = new SemanticVersion { Major = 1, Minor = 2, Patch = 3, BuildMetaData = "5.Branch.develop" }; semVer.BuildMetaData.VersionSourceSha = "versionSourceSha"; semVer.BuildMetaData.Sha = "commitSha"; semVer.BuildMetaData.ShortSha = "commitShortSha"; semVer.BuildMetaData.CommitDate = DateTimeOffset.Parse("2019-02-20 23:59:59Z"); var config = new TestEffectiveConfiguration(buildMetaDataPadding: 2, legacySemVerPadding: 5); var stringBuilder = new StringBuilder(); void Action(string s) => stringBuilder.AppendLine(s); var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); var sp = ConfigureServices(service => { service.AddSingleton <ILog>(log); }); var fileSystem = sp.GetService <IFileSystem>(); var variableProvider = sp.GetService <IVariableProvider>(); var versionVariables = variableProvider.GetVariablesFor(semVer, config, false); using var wixVersionFileUpdater = sp.GetService <IWixVersionFileUpdater>(); // fake an already existing file var file = Path.Combine(workingDir, WixVersionFileUpdater.WixVersionFileName); fileSystem.WriteAllText(file, new string('x', 1024 * 1024)); wixVersionFileUpdater.Execute(versionVariables, new WixVersionContext(workingDir)); fileSystem .ReadAllText(file) .ShouldMatchApproved(c => c.SubFolder(Path.Combine("Approved"))); }
public void NoWarnOnCustomYmlFileOutsideRepoPath() { var stringLogger = string.Empty; void Action(string info) => stringLogger = info; var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); var sp = GetServiceProvider(gitVersionOptions, log); configFileLocator = sp.GetService <IConfigFileLocator>(); fileSystem = sp.GetService <IFileSystem>(); SetupConfigFileContent(string.Empty, path: @"c:\\Unrelated\\path"); var configurationProvider = sp.GetService <IConfigProvider>(); configurationProvider.Provide(repoPath); stringLogger.Length.ShouldBe(0); }
public void NoWarnOnCustomYmlFile() { var stringLogger = string.Empty; void Action(string info) => stringLogger = info; var logAppender = new TestLogAppender(Action); var log = new Log(logAppender); var sp = GetServiceProvider(this.gitVersionOptions, log); this.configFileLocator = sp.GetService <IConfigFileLocator>(); this.fileSystem = sp.GetService <IFileSystem>(); SetupConfigFileContent(string.Empty); var configurationProvider = sp.GetService <IConfigProvider>(); configurationProvider.Provide(this.repoPath); stringLogger.Length.ShouldBe(0); }
public ProgramFixture(string workingDirectory = "") { this.workingDirectory = workingDirectory; var logBuilder = new StringBuilder(); var logAppender = new TestLogAppender(m => logBuilder.AppendLine(m)); ILog log = new Log(logAppender); var consoleBuilder = new StringBuilder(); IConsole consoleAdapter = new TestConsoleAdapter(consoleBuilder); environment = new TestEnvironment(); Overrides.Add(services => { services.AddSingleton(log); services.AddSingleton(consoleAdapter); services.AddSingleton(environment); }); logger = new Lazy <string>(() => logBuilder.ToString()); output = new Lazy <string>(() => consoleAdapter.ToString()); }
public void CacheFileExistsOnDisk() { const string versionCacheFileContent = @" Major: 4 Minor: 10 Patch: 3 PreReleaseTag: test.19 PreReleaseTagWithDash: -test.19 PreReleaseLabel: test PreReleaseLabelWithDash: -test PreReleaseNumber: 19 WeightedPreReleaseNumber: 19 BuildMetaData: BuildMetaDataPadded: FullBuildMetaData: Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f MajorMinorPatch: 4.10.3 SemVer: 4.10.3-test.19 LegacySemVer: 4.10.3-test19 LegacySemVerPadded: 4.10.3-test0019 AssemblySemVer: 4.10.3.0 AssemblySemFileVer: 4.10.3.0 FullSemVer: 4.10.3-test.19 InformationalVersion: 4.10.3-test.19+Branch.feature/test.Sha.dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f BranchName: feature/test EscapedBranchName: feature-test Sha: dd2a29aff0c948e1bdf3dabbe13e1576e70d5f9f ShortSha: dd2a29af NuGetVersionV2: 4.10.3-test0019 NuGetVersion: 4.10.3-test0019 NuGetPreReleaseTagV2: test0019 NuGetPreReleaseTag: test0019 VersionSourceSha: 4.10.2 CommitsSinceVersionSource: 19 CommitsSinceVersionSourcePadded: 0019 CommitDate: 2015-11-10 UncommittedChanges: 0 "; var stringBuilder = new StringBuilder(); void Action(string s) => stringBuilder.AppendLine(s); var logAppender = new TestLogAppender(Action); log = new Log(logAppender); using var fixture = new EmptyRepositoryFixture(); fixture.Repository.MakeACommit(); var gitVersionOptions = new GitVersionOptions { WorkingDirectory = fixture.RepositoryPath }; var gitVersionCalculator = GetGitVersionCalculator(gitVersionOptions, log); var versionVariables = gitVersionCalculator.CalculateVersionVariables(); versionVariables.AssemblySemVer.ShouldBe("0.1.0.0"); fileSystem.WriteAllText(versionVariables.FileName, versionCacheFileContent); versionVariables = gitVersionCalculator.CalculateVersionVariables(); versionVariables.AssemblySemVer.ShouldBe("4.10.3.0"); var logsMessages = stringBuilder.ToString(); logsMessages.ShouldContain("Deserializing version variables from cache file", Case.Insensitive, logsMessages); }