public async Task TestSubmitNewFlightSubmissionFailure() { var client = A.Fake <IStoreClient>(); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true)); var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submission.json"); A.CallTo(() => client.CreateSubmission("myapp", "myflight")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.NotFound))); var logger = new MockLogger(); var stringprovider = new StringProvider(); var command = new SubmitCommand(client, logger, stringprovider); var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip"; var options = new SubmitOptions { PackagesFile = packageFileLocation, Application = "myapp", ConfigFile = $"{this.GetExecutingPath()}\\Files\\.valid_config", Flight = "myflight" }; var result = await command.CreateSubmission(options); result.Should().BeNegative("the creation of submission failed"); logger.Message.Last().Should().Be(stringprovider.GetString(Strings.VerifyParameters), "there's something wrong with the parameters"); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened(); A.CallTo(() => client.CreateSubmission("myapp", "myflight")).MustHaveHappened(); }
public async Task TestCommitFlightFailure() { var client = A.Fake <IStoreClient>(); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true)); var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\flight.json"); A.CallTo(() => client.CreateSubmission("myapp", "myflight")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.Created))); var updatedJson = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\flightupdate.json"); A.CallTo(() => client.UpdateSubmission("myapp", "myflight", "submissionid", JObject.Parse(updatedJson).ToString())).Returns(Task.Factory.StartNew(() => true)); A.CallTo(() => client.Commit("myapp", "myflight", "submissionid")).Returns(Task.Factory.StartNew(() => false)); var logger = new MockLogger(); var stringprovider = new StringProvider(); var command = new SubmitCommand(client, logger, stringprovider); var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip"; var options = new SubmitOptions { PackagesFile = packageFileLocation, Application = "myapp", ConfigFile = $"{this.GetExecutingPath()}\\Files\\.valid_config", Flight = "myflight" }; var result = await command.CreateSubmission(options); result.Should().BeNegative("committing the submission failed"); logger.Message.Last().Should().Be(stringprovider.GetString(Strings.SubmitCommitError), "committing the submission failed"); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened(); A.CallTo(() => client.CreateSubmission("myapp", "myflight")).MustHaveHappened(); A.CallTo(() => client.UpdateSubmission("myapp", "myflight", "submissionid", JObject.Parse(updatedJson).ToString())).MustHaveHappened(); A.CallTo(() => client.Commit("myapp", "myflight", "submissionid")).MustHaveHappened(); }
public async Task TestSubmitSuccess() { var client = A.Fake <IStoreClient>(); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true)); var json = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submission.json"); A.CallTo(() => client.CreateSubmission("myapp")).Returns(Task.Factory.StartNew(() => new Tuple <JObject, HttpStatusCode>(JObject.Parse(json), HttpStatusCode.Created))); var updatedJson = File.ReadAllText($"{this.GetExecutingPath()}\\Files\\submissionupdate.json"); A.CallTo(() => client.UpdateSubmission("myapp", "submissionid", JObject.Parse(updatedJson).ToString())).Returns(Task.Factory.StartNew(() => true)); A.CallTo(() => client.Commit("myapp", "submissionid")).Returns(Task.Factory.StartNew(() => true)); var logger = new MockLogger(); var stringprovider = new StringProvider(); var command = new SubmitCommand(client, logger, stringprovider); var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\package.zip"; var options = new SubmitOptions { PackagesFile = packageFileLocation, Application = "myapp", ConfigFile = $"{this.GetExecutingPath()}\\Files\\.valid_config" }; var result = await command.CreateSubmission(options); result.Should().BeGreaterOrEqualTo(0, "the zip file contains app packages and everything worked out ok"); logger.Message.Last().Should().Be(stringprovider.GetString(Strings.SubmitCommitSuccess), "everything went according to plan"); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened(); A.CallTo(() => client.CreateSubmission("myapp")).MustHaveHappened(); A.CallTo(() => client.UpdateSubmission("myapp", "submissionid", JObject.Parse(updatedJson).ToString())).MustHaveHappened(); A.CallTo(() => client.Commit("myapp", "submissionid")).MustHaveHappened(); }
public async Task TestSubmitZipfileNoPackages() { var client = A.Fake <IStoreClient>(); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).Returns(Task.Factory.StartNew(() => true)); var logger = new MockLogger(); var stringprovider = new StringProvider(); var command = new SubmitCommand(client, logger, stringprovider); var packageFileLocation = $"{this.GetExecutingPath()}\\Files\\nopackage.zip"; var options = new SubmitOptions { PackagesFile = packageFileLocation, Application = "myapp", ConfigFile = $"{this.GetExecutingPath()}\\Files\\.valid_config" }; var result = await command.CreateSubmission(options); result.Should().BeNegative("the zip file does not contain app packages"); logger.Message.Last().Should().Be(Format(stringprovider.GetString(Strings.ValidatePackageNoPackages), packageFileLocation), "The provided zip file does not contain any packages"); A.CallTo(() => client.Login("myId", "myKey", "myTenantId")).MustHaveHappened(); }