public void ThrowIfCannotFindProcessKey()
        {
            var orchestratorClient = new Mock <IOrchestratorClient>();

            var client = new MyRpaClient(orchestratorClient.Object, _invalidSetting);

            Assert.Throws <InvalidOperationException>(() => client.CreatePurchaseOrderAsync(new CreatePurchaseOrderInput()).GetAwaiter().GetResult());
        }
        public void CreateSalesOrderThrowIfNoOutput()
        {
            CreateSalesOrderOutput mockOutput = null;
            var mockResponse = CreateJobResponse(mockOutput);

            var client = new MyRpaClient(GetMockOrchestratorClient(mockResponse), _validSetting);

            Assert.Throws <ArgumentNullException>(() => client.CreateSalesOrderAsync(new CreateSalesOrderInput()).GetAwaiter().GetResult());
        }
        public void CreatePurchaseOrderSuccess()
        {
            var mockOutput = new CreatePurchaseOrderOutput()
            {
                PurchaseOrderId = "123456",
            };

            var mockResponse = CreateJobResponse(mockOutput);

            var client = new MyRpaClient(GetMockOrchestratorClient(mockResponse), _validSetting);
            var output = client.CreatePurchaseOrderAsync(new CreatePurchaseOrderInput()).GetAwaiter().GetResult();

            Assert.Equal(mockOutput.PurchaseOrderId, output.PurchaseOrderId);
        }
        public void CancelOrderSuccess()
        {
            var mockOutput = new CancelOrderOutput()
            {
                ReturnLabelLocation = "randome locaion",
            };

            var mockResponse = CreateJobResponse(mockOutput);

            var client = new MyRpaClient(GetMockOrchestratorClient(mockResponse), _validSetting);
            var output = client.CancelOrderAsync(new CancelOrderInput()).GetAwaiter().GetResult();

            Assert.Equal(mockOutput.ReturnLabelLocation, output.ReturnLabelLocation);
        }
        public void CreateSalesOrderSuccess()
        {
            var mockOutput = new CreateSalesOrderOutput()
            {
                OrderId      = "123456",
                DeliveryDate = DateTime.Today.AddDays(3),
            };

            var mockResponse = CreateJobResponse(mockOutput);

            var client = new MyRpaClient(GetMockOrchestratorClient(mockResponse), _validSetting);
            var output = client.CreateSalesOrderAsync(new CreateSalesOrderInput()).GetAwaiter().GetResult();

            Assert.Equal(mockOutput.OrderId, output.OrderId);
            Assert.Equal(mockOutput.DeliveryDate.ToShortDateString(), output.DeliveryDate.ToShortDateString());
        }
        public void GetItemsSuccess()
        {
            var mockOutput = new GetItemsOutputInternal()
            {
                DeliveryDate = new string[]
                {
                    DateTime.Today.AddDays(2).ToShortDateString(),
                    DateTime.Today.AddDays(10).ToShortDateString()
                },
                ItemId         = new string[] { "1234", "5678" },
                OrderId        = new string[] { "7890", "1357" },
                ItemName       = new string[] { "Name1", "Name2" },
                Quantity       = new string[] { "1", "2" },
                DeliveryStatus = new string[] { "out of stock", "delivered" },
            };

            var mockResponse = CreateJobResponse(mockOutput);

            var client = new MyRpaClient(GetMockOrchestratorClient(mockResponse), _validSetting);
            var output = client.GetItemsAsync(new GetItemsInput()).GetAwaiter().GetResult();

            Assert.Equal(mockOutput.ItemId.Length, output.Items.Length);
            Assert.Equal(mockOutput.ItemId[0], output.Items[0].ItemId);
        }