From 54e5672f8ed72a0407e58019dab8b695848f23d4 Mon Sep 17 00:00:00 2001 From: RLittlesII Date: Thu, 20 Sep 2018 21:07:31 -0500 Subject: [PATCH] Added Pilot Command --- .../Pilot/FastlanePilotTests.cs | 72 ++++++++++++------- .../Pilot/FastlanePilotConfiguration.cs | 10 ++- .../Pilot/FastlanePilotProvider.cs | 5 +- src/Cake.Fastlane/Pilot/PilotCommand.cs | 49 +++++++++++++ 4 files changed, 109 insertions(+), 27 deletions(-) create mode 100644 src/Cake.Fastlane/Pilot/PilotCommand.cs diff --git a/src/Cake.Fastlane.Tests/Pilot/FastlanePilotTests.cs b/src/Cake.Fastlane.Tests/Pilot/FastlanePilotTests.cs index 40e99c5..059b6f7 100644 --- a/src/Cake.Fastlane.Tests/Pilot/FastlanePilotTests.cs +++ b/src/Cake.Fastlane.Tests/Pilot/FastlanePilotTests.cs @@ -151,7 +151,29 @@ public void Should_Add_Action_If_No_Configuration_Provided() var result = fixture.Run(); // Then - Assert.Equal("pilot", result.Args); + Assert.Equal("pilot upload", result.Args); + } + + [Theory] + [InlineData(PilotCommand.Upload)] + [InlineData(PilotCommand.Builds)] + [InlineData(PilotCommand.List)] + [InlineData(PilotCommand.Find)] + [InlineData(PilotCommand.Add)] + [InlineData(PilotCommand.Remove)] + [InlineData(PilotCommand.Import)] + [InlineData(PilotCommand.Export)] + public void Should_Add_Command_If_Provided(PilotCommand command) + { + // Given + var fixture = new FastlanePilotFixture(); + fixture.Settings.Command = command; + + // When + var result = fixture.Run(); + + // Then + Assert.Equal($"pilot {command.ToString().ToLower()}", result.Args); } [Fact] @@ -165,7 +187,7 @@ public void Should_Add_User_Name_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -u {fixture.Settings.UserName}", result.Args); + Assert.Equal($"pilot upload -u {fixture.Settings.UserName}", result.Args); } [Fact] @@ -179,7 +201,7 @@ public void Should_Add_App_Identifier_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -a {fixture.Settings.AppIdentifier}", result.Args); + Assert.Equal($"pilot upload -a {fixture.Settings.AppIdentifier}", result.Args); } [Fact] @@ -193,7 +215,7 @@ public void Should_Add_App_Platform_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -m {fixture.Settings.Platform}", result.Args); + Assert.Equal($"pilot upload -m {fixture.Settings.Platform}", result.Args); } [Fact] @@ -207,7 +229,7 @@ public void Should_Add_Ipa_File_Path_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -i \"/Working/cake.fastlane.ipa\"", result.Args); + Assert.Equal($"pilot upload -i \"/Working/cake.fastlane.ipa\"", result.Args); } [Fact] @@ -221,7 +243,7 @@ public void Should_Add_Change_Log_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -w {fixture.Settings.ChangeLog}", result.Args); + Assert.Equal($"pilot upload -w {fixture.Settings.ChangeLog}", result.Args); } [Fact] @@ -235,7 +257,7 @@ public void Should_Add_Beta_App_Description_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -d {fixture.Settings.BetaAppDescription}", result.Args); + Assert.Equal($"pilot upload -d {fixture.Settings.BetaAppDescription}", result.Args); } [Fact] @@ -249,7 +271,7 @@ public void Should_Add_Beta_App_Feedback_Email_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -n {fixture.Settings.BetaAppFeedbackEmail}", result.Args); + Assert.Equal($"pilot upload -n {fixture.Settings.BetaAppFeedbackEmail}", result.Args); } [Fact] @@ -263,7 +285,7 @@ public void Should_Add_Skip_Submission_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -s", result.Args); + Assert.Equal($"pilot upload -s", result.Args); } [Fact] @@ -277,7 +299,7 @@ public void Should_Add_Skip_Waiting_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -z", result.Args); + Assert.Equal($"pilot upload -z", result.Args); } [Fact] @@ -291,7 +313,7 @@ public void Should_Add_Apple_Id_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -p {fixture.Settings.AppleId}", result.Args); + Assert.Equal($"pilot upload -p {fixture.Settings.AppleId}", result.Args); } [Fact] @@ -305,7 +327,7 @@ public void Should_Add_Distribute_If_Provided() var result = fixture.Run(); // Then - Assert.Equal("pilot --distribute_external", result.Args); + Assert.Equal("pilot upload --distribute_external", result.Args); } [Fact] @@ -319,7 +341,7 @@ public void Should_Add_Demo_Account_Required_If_Provided() var result = fixture.Run(); // Then - Assert.Equal("pilot --demo_account_required", result.Args); + Assert.Equal("pilot upload --demo_account_required", result.Args); } [Fact] @@ -333,7 +355,7 @@ public void Should_Add_First_Name_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -f {fixture.Settings.FirstName}", result.Args); + Assert.Equal($"pilot upload -f {fixture.Settings.FirstName}", result.Args); } [Fact] @@ -347,7 +369,7 @@ public void Should_Add_Last_Name_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -l {fixture.Settings.LastName}", result.Args); + Assert.Equal($"pilot upload -l {fixture.Settings.LastName}", result.Args); } [Fact] @@ -361,7 +383,7 @@ public void Should_Add_Email_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -e {fixture.Settings.Email}", result.Args); + Assert.Equal($"pilot upload -e {fixture.Settings.Email}", result.Args); } [Fact] @@ -375,7 +397,7 @@ public void Should_Add_Tester_File_Path_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -c \"/Working/testers.csv\"", result.Args); + Assert.Equal($"pilot upload -c \"/Working/testers.csv\"", result.Args); } [Fact] @@ -389,7 +411,7 @@ public void Should_Add_Wait_Processing_Interval_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -k {fixture.Settings.WaitProcessingInterval}", result.Args); + Assert.Equal($"pilot upload -k {fixture.Settings.WaitProcessingInterval}", result.Args); } [Fact] @@ -403,7 +425,7 @@ public void Should_Add_Team_Id_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -q {fixture.Settings.TeamId}", result.Args); + Assert.Equal($"pilot upload -q {fixture.Settings.TeamId}", result.Args); } [Fact] @@ -417,7 +439,7 @@ public void Should_Add_Team_Name_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -r {fixture.Settings.TeamName}", result.Args); + Assert.Equal($"pilot upload -r {fixture.Settings.TeamName}", result.Args); } [Fact] @@ -431,7 +453,7 @@ public void Should_Add_Portal_Team_Name_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot --dev_portal_team_id {fixture.Settings.PortalTeamId}", result.Args); + Assert.Equal($"pilot upload --dev_portal_team_id {fixture.Settings.PortalTeamId}", result.Args); } [Fact] @@ -445,7 +467,7 @@ public void Should_Add_Itc_Provider_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot --itc_provider {fixture.Settings.ItcProvider}", result.Args); + Assert.Equal($"pilot upload --itc_provider {fixture.Settings.ItcProvider}", result.Args); } [Fact] @@ -459,7 +481,7 @@ public void Should_Add_Groups_If_Provided() var result = fixture.Run(); // Then - Assert.Equal($"pilot -g \"Team Wilson\",\"Brady Bunch\"", result.Args); + Assert.Equal($"pilot upload -g \"Team Wilson\",\"Brady Bunch\"", result.Args); } [Fact] @@ -473,7 +495,7 @@ public void Should_Add_Wait_For_Build_If_Provided() var result = fixture.Run(); // Then - Assert.Equal("pilot --wait_for_uploaded_build", result.Args); + Assert.Equal("pilot upload --wait_for_uploaded_build", result.Args); } [Fact] @@ -487,7 +509,7 @@ public void Should_Add_Reject_Build_Waiting_For_Review_If_Provided() var result = fixture.Run(); // Then - Assert.Equal("pilot --reject_build_waiting_for_review", result.Args); + Assert.Equal("pilot upload --reject_build_waiting_for_review", result.Args); } } } diff --git a/src/Cake.Fastlane/Pilot/FastlanePilotConfiguration.cs b/src/Cake.Fastlane/Pilot/FastlanePilotConfiguration.cs index dcf9f48..62500a5 100644 --- a/src/Cake.Fastlane/Pilot/FastlanePilotConfiguration.cs +++ b/src/Cake.Fastlane/Pilot/FastlanePilotConfiguration.cs @@ -20,6 +20,14 @@ public FastlanePilotConfiguration() Groups = Enumerable.Empty(); } + /// + /// Gets or sets the command to run with pilot. + /// + /// + /// The command. + /// + public PilotCommand Command { get; set; } + /// /// Gets or sets the path to the ipa file to upload. /// @@ -62,7 +70,7 @@ public FastlanePilotConfiguration() public bool Distribute { get; set; } /// - /// Gets or sets a value indicating whether to notify testers. + /// Gets or sets a value indicating whether to notify external testers. /// public bool Notify { get; set; } diff --git a/src/Cake.Fastlane/Pilot/FastlanePilotProvider.cs b/src/Cake.Fastlane/Pilot/FastlanePilotProvider.cs index 7f1e53d..096a5e4 100644 --- a/src/Cake.Fastlane/Pilot/FastlanePilotProvider.cs +++ b/src/Cake.Fastlane/Pilot/FastlanePilotProvider.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using System.Linq; using Cake.Core; using Cake.Core.IO; @@ -49,6 +50,8 @@ private ProcessArgumentBuilder ArgumentBuilder(FastlanePilotConfiguration config builder.Append("pilot"); + builder.Append(configuration.Command.ToString().ToLower()); + if (!string.IsNullOrEmpty(configuration.UserName)) { builder.AppendSwitch("-u", configuration.UserName); @@ -106,7 +109,7 @@ private ProcessArgumentBuilder ArgumentBuilder(FastlanePilotConfiguration config if (configuration.Notify) { - //TODO: Determine how to shut this thing off + // TODO: This is true by default. Not sure if providing the switch turns it off. } if (configuration.DemoAccountRequired) diff --git a/src/Cake.Fastlane/Pilot/PilotCommand.cs b/src/Cake.Fastlane/Pilot/PilotCommand.cs new file mode 100644 index 0000000..ced2a4c --- /dev/null +++ b/src/Cake.Fastlane/Pilot/PilotCommand.cs @@ -0,0 +1,49 @@ +namespace Cake.Fastlane +{ + /// + /// Commands for the pilot tool. + /// + public enum PilotCommand + { + + /// + /// Uploads a build. + /// + Upload, + + /// + /// Lists all the builds. + /// + Builds, + + /// + /// Lists all the testers. + /// + List, + + /// + /// Adds a new tester. + /// + Add, + + /// + /// Finds a tester. + /// + Find, + + /// + /// Remove external beta testers. + /// + Remove, + + /// + /// Export all external testers to csv. + /// + Export, + + /// + /// Add external testers from csv. + /// + Import + } +} \ No newline at end of file