public void UserNameIsSpecified_SetsSteamUserName()
            {
                // Arrange
                string[] args = { "--username=myUserName" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                // Act
                parser.Parse(args, settings);

                // Assert
                Assert.Equal("myUserName", settings.SteamUserName);
            }
            public void TimeoutIsSpecified_SetsSteamClientTimeout()
            {
                // Arrange
                string[] args     = { "--timeout=00:01:00" };
                var      settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                // Act
                parser.Parse(args, settings);

                // Assert
                Assert.Equal(TimeSpan.FromMinutes(1), settings.SteamClientTimeout);
            }
            public void DailiesIsSpecified_SetsDailyLeaderboardsPerUpdate()
            {
                // Arrange
                string[] args = { "--dailies=10" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                // Act
                parser.Parse(args, settings);

                // Assert
                Assert.Equal(10, settings.DailyLeaderboardsPerUpdate);
            }
            public void PasswordIsSpecified_SetsSteamPassword()
            {
                // Arrange
                string[] args = { "--password=myPassword" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myPassword", 1);

                Assert.Equal(encrypted.Decrypt(), settings.SteamPassword.Decrypt());
            }
            public void PasswordFlagIsSpecified_PromptsUserForPasswordAndSetsSteamPassword()
            {
                // Arrange
                string[] args = { "--password" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                mockInReader
                .SetupSequence(r => r.ReadLine())
                .Returns("myPassword");

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myPassword", 1);

                Assert.Equal(encrypted.Decrypt(), settings.SteamPassword.Decrypt());
            }