Beispiel #1
0
        public void TestValidateInputsSpecificToExportByResourceGroup()
        {
            var resourceGroupName  = TestUtilities.GenerateName("SdkRg");
            var sourceAccountsList = GetSourceAccountsList();
            var dataExportDetails  = new List <DataExportDetails>();

            TransferConfiguration transferCofiguration = new TransferConfiguration
            {
                TransferConfigurationType = TransferConfigurationType.TransferAll,
                TransferAllDetails        = new TransferConfigurationTransferAllDetails
                {
                    Include = new TransferAllDetails
                    {
                        DataAccountType  = DataAccountType.StorageAccount,
                        TransferAllBlobs = true,
                        TransferAllFiles = true
                    }
                }
            };

            dataExportDetails.Add(new DataExportDetails(transferCofiguration, sourceAccountsList.FirstOrDefault()));
            var validateInput = new CreateJobValidations
            {
                IndividualRequestDetails = new List <ValidationInputRequest>()
                {
                    new DataTransferDetailsValidationRequest()
                    {
                        TransferType      = TransferType.ExportFromAzure,
                        DataExportDetails = dataExportDetails
                    },

                    new SkuAvailabilityValidationRequest()
                    {
                        DeviceType   = SkuName.DataBox,
                        TransferType = TransferType.ExportFromAzure,
                        Country      = "US",
                        Location     = "westus"
                    },
                }
            };
            var validateResponse = this.Client.Service.ValidateInputsByResourceGroup(resourceGroupName, TestConstants.DefaultResourceLocation, validateInput);

            Assert.True(validateResponse != null, "Call for ValidateInputs is successful.");
            Assert.True(validateResponse.Status == OverallValidationStatus.AllValidToProceed);
            ValidateIndividualValidateResponse(validateResponse.IndividualResponseDetails);
        }
        public void TestExportJobCRUDOperations()
        {
            var             resourceGroupName = TestUtilities.GenerateName("SdkRg");
            var             jobName           = TestUtilities.GenerateName("SdkJob");
            ContactDetails  contactDetails    = GetDefaultContactDetails();
            ShippingAddress shippingAddress   = GetDefaultShippingAddress();
            Sku             sku = GetDefaultSku();
            var             sourceAccountsList = GetSourceAccountsList();

            JobDetails jobDetails = new DataBoxJobDetails
            {
                ContactDetails  = contactDetails,
                ShippingAddress = shippingAddress
            };

            jobDetails.DataExportDetails = new List <DataExportDetails>();
            TransferConfiguration transferCofiguration = new TransferConfiguration
            {
                TransferConfigurationType = TransferConfigurationType.TransferAll,
                TransferAllDetails        = new TransferConfigurationTransferAllDetails
                {
                    Include = new TransferAllDetails
                    {
                        DataAccountType  = DataAccountType.StorageAccount,
                        TransferAllBlobs = true,
                        TransferAllFiles = true
                    }
                }
            };

            jobDetails.DataExportDetails.Add(new DataExportDetails(transferCofiguration, sourceAccountsList.FirstOrDefault()));
            var jobResource = new JobResource
            {
                Sku          = sku,
                Location     = TestConstants.DefaultResourceLocation,
                Details      = jobDetails,
                TransferType = TransferType.ExportFromAzure
            };

            this.RMClient.ResourceGroups.CreateOrUpdate(
                resourceGroupName,
                new ResourceGroup
            {
                Location = TestConstants.DefaultResourceLocation
            });

            var job = this.Client.Jobs.Create(resourceGroupName, jobName, jobResource);

            ValidateJobWithoutDetails(jobName, sku, job);
            Assert.Equal(StageName.DeviceOrdered, job.Status);

            var getJob = this.Client.Jobs.Get(resourceGroupName, jobName, TestConstants.Details);

            ValidateJobWithoutDetails(jobName, sku, getJob);
            ValidateJobDetails(contactDetails, shippingAddress, getJob, JobDeliveryType.NonScheduled);
            Assert.Equal(StageName.DeviceOrdered, job.Status);

            contactDetails.ContactName    = "Update Job";
            getJob.Details.ContactDetails = contactDetails;

            var Details = new UpdateJobDetails
            {
                ContactDetails  = getJob.Details.ContactDetails,
                ShippingAddress = getJob.Details.ShippingAddress
            };

            var updateParams = new JobResourceUpdateParameter
            {
                Details = Details
            };
            var updateJob = this.Client.Jobs.Update(resourceGroupName, jobName, updateParams);

            ValidateJobWithoutDetails(jobName, sku, updateJob);
            Assert.Equal(StageName.DeviceOrdered, updateJob.Status);

            getJob = this.Client.Jobs.Get(resourceGroupName, jobName, TestConstants.Details);
            ValidateJobWithoutDetails(jobName, sku, getJob);
            ValidateJobDetails(contactDetails, shippingAddress, getJob, JobDeliveryType.NonScheduled);
            Assert.Equal(StageName.DeviceOrdered, getJob.Status);

            var jobList = this.Client.Jobs.List();

            Assert.NotNull(jobList);

            jobList = this.Client.Jobs.ListByResourceGroup(resourceGroupName);
            Assert.NotNull(jobList);

            this.Client.Jobs.Cancel(resourceGroupName, jobName, "CancelTest");
            getJob = this.Client.Jobs.Get(resourceGroupName, jobName, TestConstants.Details);
            Assert.Equal(StageName.Cancelled, getJob.Status);

            while (!string.IsNullOrWhiteSpace(getJob.Details.ContactDetails.ContactName))
            {
                Wait(TimeSpan.FromMinutes(5));
                getJob = this.Client.Jobs.Get(resourceGroupName, jobName, TestConstants.Details);
            }
            this.Client.Jobs.Delete(resourceGroupName, jobName);
        }