Inheritance: ICommand
        public void Integration_Commands_CreateConfigToShutdownConfigWithVpn()
        {
            var args = new Dictionary<string, string>();
            var user = new SkytapVpnUser();

            args[Arguments.Username] = user.Username;
            args[Arguments.Password] = user.Key;
            args[Arguments.ConfigId] = user.ConfigRunningTfs;
            args[Arguments.TemplateId] = user.TargetTemplate;
            args[Arguments.VpnId] = user.VpnId;
            args[Arguments.ConfigName] = "Integration_Commands_TestConfig_" + DateTime.Now.ToString("yy-MM-dd_hh.mm.ss");

            var tfsStartupCommand = new TfsStartup();
            var tfsStartupCommandValidation = tfsStartupCommand.ValidateArgs(args);
            var tfsStartupResult = tfsStartupCommand.Invoke(args);

            var tfsShutdownCommand = new TfsShutdown();
            var tfsShutdownCommandValidation = tfsShutdownCommand.ValidateArgs(args);
            var tfsShutdownResult = tfsShutdownCommand.Invoke(args);

            Assert.IsTrue(tfsStartupCommandValidation);
            Assert.AreEqual(0, tfsStartupResult);
            Assert.IsTrue(tfsShutdownCommandValidation);
            Assert.AreEqual(0, tfsShutdownResult);
        }
        public void Integration_Commands_CreateConfigToShutdownConfig()
        {
            var args = new Dictionary<string, string>();
            var user = new SkytapUser();

            args[Arguments.Username] = user.Username;
            args[Arguments.Password] = user.Key;
            args[Arguments.ConfigId] = user.ConfigRunningTfs;
            args[Arguments.TemplateId] = user.TargetTemplate;
            args[Arguments.ConfigName] = "Integration_Commands_TestConfig_" + DateTime.Now.ToString("yy-MM-dd_hh.mm.ss");

            var tfsStartupCommand = new TfsStartup();
            var tfsStartupCommandValidation = tfsStartupCommand.ValidateArgs(args);
            var tfsStartupResult = tfsStartupCommand.Invoke(args);

            // INSERT AN ARTIFICIAL DELAY to simulate a set of tests being run to make this reflect the build
            // process a little more closely. This is an optional delay and not required for the test.
            Thread.Sleep(5000 /* ms */);

            var tfsShutdownCommand = new TfsShutdown();
            var tfsShutdownCommandValidation = tfsShutdownCommand.ValidateArgs(args);
            var tfsShutdownResult = tfsShutdownCommand.Invoke(args);

            Assert.IsTrue(tfsStartupCommandValidation);
            Assert.AreEqual(0, tfsStartupResult);
            Assert.IsTrue(tfsShutdownCommandValidation);
            Assert.AreEqual(0, tfsShutdownResult);
        }