public async Task UpdateSolutionReplicaIOPSAsync_InvalidReplicaID_ThrowsUKFastClientValidationException()
 {
     var req = new UpdateReplicaIOPSRequest();
     var ops = new HardwarePlanReplicaOperations <Replica>(null);
     await Assert.ThrowsExceptionAsync <UKFastClientValidationException>(() =>
                                                                         ops.UpdateSolutionReplicaIOPSAsync("00000000-0000-0000-0000-000000000000", "", req));
 }
        public async Task UpdateSolutionReplicaIOPSAsync_ValidParameters_ExpectedClientCall()
        {
            IUKFastDRaaSClient client = Substitute.For <IUKFastDRaaSClient>();
            var req = new UpdateReplicaIOPSRequest();

            var ops = new HardwarePlanReplicaOperations <Replica>(client);
            await ops.UpdateSolutionReplicaIOPSAsync("00000000-0000-0000-0000-000000000000",
                                                     "11111111-1111-1111-1111-111111111111", req);

            await client.Received()
            .PostAsync(
                $"/draas/v1/solutions/00000000-0000-0000-0000-000000000000/replicas/11111111-1111-1111-1111-111111111111/iops",
                req);
        }
        public async Task UpdateSolutionReplicaIOPSAsync(string solutionID, string replicaID, UpdateReplicaIOPSRequest req)
        {
            if (string.IsNullOrWhiteSpace(solutionID))
            {
                throw new UKFastClientValidationException("Invalid solution id");
            }

            if (string.IsNullOrWhiteSpace(replicaID))
            {
                throw new UKFastClientValidationException("Invalid hardware plan id");
            }

            await this.Client.PostAsync($"/draas/v1/solutions/{solutionID}/replicas/{replicaID}/iops", req);
        }