public void WriteStatusWritesServerStatusToAllEnabledStatusFiles() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "%N" }, new StatusFileSetting { Pathname = filenames[1], Content = "%A" }, new StatusFileSetting { Pathname = filenames[2], Content = "%P" }, new StatusFileSetting { Pathname = filenames[3], Content = "%M" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("ServerAddress", "ServerName", 12, 21); Assert.AreEqual("ServerName", File.ReadAllText(filenames[0])); Assert.AreEqual("ServerAddress", File.ReadAllText(filenames[1])); Assert.AreEqual("12", File.ReadAllText(filenames[2])); Assert.AreEqual("21", File.ReadAllText(filenames[3])); }
public void WriteStatusContinuesWritingOtherStatusFilesAfterError() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "SUCCESS 1" }, new StatusFileSetting { Pathname = filenames[1], Content = "DON'T CARE" }, new StatusFileSetting { Pathname = filenames[2], Content = "SUCCESS 2" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); using (FileStream fs = File.OpenWrite(filenames[1])) { writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); } Assert.AreEqual("SUCCESS 1", File.ReadAllText(filenames[0])); Assert.AreEqual("SUCCESS 2", File.ReadAllText(filenames[2])); }
public void WriteStatusDoesNothingWhenStatusFilesIsEmpty() { StatusFileWriter writer = new StatusFileWriter(new StatusFileSetting[] {}, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.IsFalse(File.Exists(filenames[0])); Assert.IsFalse(File.Exists(filenames[1])); Assert.IsFalse(File.Exists(filenames[2])); Assert.IsFalse(File.Exists(filenames[3])); Assert.IsTrue(logger.NothingLogged); }
public void WriteStatusTreatsFormatSpecifiersCaseSensitively() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "%n %a %p %m" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.AreEqual("%n %a %p %m", File.ReadAllText(filenames[0])); }
public void WriteStatusTreatsTrailingPercentAsLiteral() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "49%" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.AreEqual("49%", File.ReadAllText(filenames[0])); Assert.IsTrue(logger.NothingLogged); }
public void WriteStatusInterpolatesSupportedParametersIntoContentFormat() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "foo %N bar %A baz %P buz %M" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.AreEqual( "foo SERVER-NAME bar SERVER-ADDRESS baz 42 buz 69", File.ReadAllText(filenames[0])); }
public void WriteStatusWritesServerStatusToFileUsingContentFormat() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "CONTENT" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.AreEqual("CONTENT", File.ReadAllText(filenames[0])); Assert.IsTrue(logger.NothingLogged); }
public void WriteStatusDoesNothingWhenStatusFileIsDisabled() { StatusFileWriter writer = new StatusFileWriter(new StatusFileSetting[] { new StatusFileSetting { Pathname = null, Content = "CONTENT" } }, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.IsFalse(File.Exists(filenames[0])); Assert.IsFalse(File.Exists(filenames[1])); Assert.IsFalse(File.Exists(filenames[2])); Assert.IsFalse(File.Exists(filenames[3])); Assert.IsTrue(logger.NothingLogged); }
public void WriteStatusIgnoresUnsupportedParameterSpecifiers() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "%N %Z %Y %X %% %A" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); Assert.AreEqual( "SERVER-NAME %Z %Y %X %% SERVER-ADDRESS", File.ReadAllText(filenames[0])); Assert.IsTrue(logger.NothingLogged); }
public void WriteStatusLogsErrorWhenWritingStatusFileThrowsException() { StatusFileSetting[] statusFiles = { new StatusFileSetting { Pathname = filenames[0], Content = "CONTENT" } }; StatusFileWriter writer = new StatusFileWriter(statusFiles, logger); using (FileStream fs = File.OpenWrite(filenames[0])) { writer.WriteStatus("SERVER-ADDRESS", "SERVER-NAME", 42, 69); } Assert.AreEqual(1, logger.ErrorTexts.Count); Assert.AreEqual($"Failed to write status to {filenames[0]}", logger.ErrorTexts[0]); Assert.AreEqual(1, logger.ErrorExceptions.Count); Assert.IsNotNull(logger.ErrorExceptions[0]); }
internal void UpdateValues(string server, string name, int players, int maxPlayers) { Color playersColor; if (players == 0) { playersColor = Color.Blue; } else if (players < maxPlayers) { playersColor = Color.Green; } else { playersColor = Color.Red; } UpdateValues(server, name, players.ToString(), maxPlayers.ToString(), playersColor); UpdateSystemTrayIcon(players, maxPlayers); StatusFileWriter writer = new StatusFileWriter(settings.StatusFile, logger); writer.WriteStatus(server, name, players, maxPlayers); }