public void ReadProperties_ValuesAreSameWiththeInternalWebJobInstance()
        {
            //Set up
            TriggeredWebJobRun jobRun = new TriggeredWebJobRun();
            TriggeredWebJob webJob = new TriggeredWebJob()
            {
                ExtraInfoUrl = "an extra info url",
                HistoryUrl = "a history url",
                LatestRun = jobRun,
                Name = "my web job name",
                Type = WebJobType.Triggered,
                RunCommand = "my run command",
                Url = new System.Uri("http://myWebJobUrl")
            };

            // Test
            PSTriggeredWebJob wrapper = new PSTriggeredWebJob(webJob);

            // Assert
            Assert.Equal(webJob.ExtraInfoUrl, wrapper.ExtraInfoUrl);
            Assert.Equal(webJob.HistoryUrl, wrapper.HistoryUrl);
            Assert.Equal(webJob.LatestRun, wrapper.LatestRun);
            Assert.Equal(webJob.Name, wrapper.JobName);
            Assert.Equal(webJob.RunCommand, wrapper.RunCommand);
            Assert.Equal(webJob.Type, wrapper.JobType);
            Assert.Equal(webJob.Url, wrapper.Url);
        }
        public void ReadProperties_ValuesAreSameWiththeInternalWebJobInstance()
        {
            //Set up
            TriggeredWebJobRun jobRun = new TriggeredWebJobRun();
            TriggeredWebJob    webJob = new TriggeredWebJob()
            {
                ExtraInfoUrl = "an extra info url",
                HistoryUrl   = "a history url",
                LatestRun    = jobRun,
                Name         = "my web job name",
                Type         = WebJobType.Triggered,
                RunCommand   = "my run command",
                Url          = new System.Uri("http://myWebJobUrl")
            };

            // Test
            PSTriggeredWebJob wrapper = new PSTriggeredWebJob(webJob);

            // Assert
            Assert.Equal(webJob.ExtraInfoUrl, wrapper.ExtraInfoUrl);
            Assert.Equal(webJob.HistoryUrl, wrapper.HistoryUrl);
            Assert.Equal(new PSTriggeredWebJobRun(webJob.LatestRun).ToString(), wrapper.LatestRun.ToString());
            Assert.Equal(webJob.Name, wrapper.JobName);
            Assert.Equal(webJob.RunCommand, wrapper.RunCommand);
            Assert.Equal(webJob.Type, wrapper.JobType);
            Assert.Equal(webJob.Url, wrapper.Url);
        }
        public void WriteProperties_InternalWebJobInstanceIsUpdated()
        {
            //Set up
            TriggeredWebJobRun jobRun = new TriggeredWebJobRun();
            TriggeredWebJob    webJob = new TriggeredWebJob()
            {
                Type = WebJobType.Triggered,
            };

            string             jobName        = "My Job Name";
            WebJobType         jobType        = WebJobType.Triggered;
            string             detailedStatus = "some details";
            string             extraInfoUrl   = "an extra info url";
            string             historyUrl     = "a history url";
            TriggeredWebJobRun latestRun      = new TriggeredWebJobRun();
            string             logUrl         = "a log url";
            string             status         = "my web job status";
            string             runCommand     = "my run command";
            Uri url = new System.Uri("http://myWebJobUrl");

            // Test
            PSTriggeredWebJob wrapper = new PSTriggeredWebJob(webJob);

            wrapper.JobType      = jobType;
            wrapper.JobName      = jobName;
            wrapper.ExtraInfoUrl = extraInfoUrl;
            wrapper.HistoryUrl   = historyUrl;
            wrapper.LatestRun    = latestRun;
            wrapper.RunCommand   = runCommand;
            wrapper.Url          = url;

            // Assert
            Assert.AreEqual(jobName, wrapper.JobName);
            Assert.AreEqual(jobType, wrapper.JobType);
            Assert.AreEqual(extraInfoUrl, wrapper.ExtraInfoUrl);
            Assert.AreEqual(historyUrl, wrapper.HistoryUrl);
            Assert.AreEqual(latestRun, wrapper.LatestRun);
            Assert.AreEqual(runCommand, wrapper.RunCommand);
            Assert.AreEqual(url, wrapper.Url);
            Assert.AreEqual(jobName, webJob.Name);
            Assert.AreEqual(jobType, webJob.Type);
            Assert.AreEqual(extraInfoUrl, webJob.ExtraInfoUrl);
            Assert.AreEqual(historyUrl, webJob.HistoryUrl);
            Assert.AreEqual(latestRun, webJob.LatestRun);
            Assert.AreEqual(runCommand, webJob.RunCommand);
            Assert.AreEqual(url, webJob.Url);
        }
        public void WriteProperties_InternalWebJobInstanceIsUpdated()
        {
            //Set up
            TriggeredWebJobRun jobRun = new TriggeredWebJobRun();
            TriggeredWebJob webJob = new TriggeredWebJob()
            {
                Type = WebJobType.Triggered,
            };

            string jobName = "My Job Name";
            WebJobType jobType = WebJobType.Triggered;
            string detailedStatus = "some details";
            string extraInfoUrl = "an extra info url";
            string historyUrl = "a history url";
            TriggeredWebJobRun latestRun = new TriggeredWebJobRun();
            string logUrl = "a log url";
            string status = "my web job status";
            string runCommand = "my run command";
            Uri url = new System.Uri("http://myWebJobUrl");

            // Test
            PSTriggeredWebJob wrapper = new PSTriggeredWebJob(webJob);
            wrapper.JobType = jobType;
            wrapper.JobName = jobName;
            wrapper.ExtraInfoUrl = extraInfoUrl;
            wrapper.HistoryUrl = historyUrl;
            wrapper.LatestRun = latestRun;
            wrapper.RunCommand = runCommand;
            wrapper.Url = url;

            // Assert
            Assert.AreEqual(jobName, wrapper.JobName);
            Assert.AreEqual(jobType, wrapper.JobType);
            Assert.AreEqual(extraInfoUrl, wrapper.ExtraInfoUrl);
            Assert.AreEqual(historyUrl, wrapper.HistoryUrl);
            Assert.AreEqual(latestRun, wrapper.LatestRun);
            Assert.AreEqual(runCommand, wrapper.RunCommand);
            Assert.AreEqual(url, wrapper.Url);
            Assert.AreEqual(jobName, webJob.Name);
            Assert.AreEqual(jobType, webJob.Type);
            Assert.AreEqual(extraInfoUrl, webJob.ExtraInfoUrl);
            Assert.AreEqual(historyUrl, webJob.HistoryUrl);
            Assert.AreEqual(latestRun, webJob.LatestRun);
            Assert.AreEqual(runCommand, webJob.RunCommand);
            Assert.AreEqual(url, webJob.Url);
        }
        public void CreatesTriggeredWebJob()
        {
            // Setup
            string jobName = "myWebJob";
            string jobFile = "job.bat";
            WebJobType jobType = WebJobType.Triggered;
            PSTriggeredWebJob output = new PSTriggeredWebJob() { JobName = jobName, JobType = jobType };
            websitesClientMock.Setup(f => f.CreateWebJob(websiteName, slot, jobName, jobType, jobFile)).Returns(output);
            cmdlet.JobName = jobName;
            cmdlet.JobType = jobType;
            cmdlet.JobFile = jobFile;

            // Test
            cmdlet.ExecuteCmdlet();

            // Assert
            websitesClientMock.Verify(f => f.CreateWebJob(websiteName, slot, jobName, jobType, jobFile), Times.Once());
            commandRuntimeMock.Verify(f => f.WriteObject(output), Times.Once());
        }
        public void CreatesTriggeredWebJob()
        {
            // Setup
            string            jobName = "myWebJob";
            string            jobFile = "job.bat";
            WebJobType        jobType = WebJobType.Triggered;
            PSTriggeredWebJob output  = new PSTriggeredWebJob()
            {
                JobName = jobName, JobType = jobType
            };

            websitesClientMock.Setup(f => f.CreateWebJob(websiteName, slot, jobName, jobType, jobFile)).Returns(output);
            cmdlet.JobName = jobName;
            cmdlet.JobType = jobType;
            cmdlet.JobFile = jobFile;

            // Test
            cmdlet.ExecuteCmdlet();

            // Assert
            websitesClientMock.Verify(f => f.CreateWebJob(websiteName, slot, jobName, jobType, jobFile), Times.Once());
            commandRuntimeMock.Verify(f => f.WriteObject(output), Times.Once());
        }