public void ToLogicAppAction_WithInputOutput_CreatesAlternative() { // Arrange var trackedProperties = new Dictionary <string, string> { [Guid.NewGuid().ToString()] = BogusGenerator.Random.Word() }; string trackedPropertiesJson = JsonConvert.SerializeObject(trackedProperties).OrNull(BogusGenerator); var workflowAction = new WorkflowRunAction( name: BogusGenerator.Internet.DomainName(), startTime: BogusGenerator.Date.Past(), endTime: BogusGenerator.Date.Past(), status: GenerateStatus(), error: BogusGenerator.Random.Bytes(10), trackedProperties: trackedPropertiesJson); var inputs = BogusGenerator.Random.String(); var outputs = BogusGenerator.Random.String(); // Act var actual = LogicAppConverter.ToLogicAppAction(workflowAction, inputs, outputs); // Assert Assert.NotNull(actual); Assert.Equal(workflowAction.Name, actual.Name); Assert.Equal(workflowAction.StartTime, actual.StartTime); Assert.Equal(workflowAction.EndTime, actual.EndTime); Assert.Equal(workflowAction.Status, actual.Status.ToString()); Assert.Equal(workflowAction.Error, actual.Error); Assert.Equal(inputs, actual.Inputs); Assert.Equal(outputs, actual.Outputs); Assert.True(trackedPropertiesJson == null || trackedProperties.SequenceEqual(actual.TrackedProperties)); }
private static IDictionary <string, string> DeserializeTrackedProperties(WorkflowRunAction workflowRunAction) { if (workflowRunAction.TrackedProperties is null) { return(new Dictionary <string, string>()); } var trackedPropertiesJson = workflowRunAction.TrackedProperties.ToString(); var trackedProperties = JsonConvert.DeserializeObject <Dictionary <string, string> >(trackedPropertiesJson); return(trackedProperties); }
/// <summary> /// Convert to <see cref="LogicAppAction"/>. /// </summary> public static LogicAppAction ToLogicAppAction(WorkflowRunAction workflowRunAction, dynamic input, dynamic output) { Guard.NotNull(param: workflowRunAction, paramName: nameof(workflowRunAction)); Enum.TryParse(value: workflowRunAction.Status, result: out LogicAppActionStatus status); IDictionary <string, string> trackedProperties = DeserializeTrackedProperties(workflowRunAction: workflowRunAction); var logicAppAction = new LogicAppAction( name: workflowRunAction.Name, status: status, error: workflowRunAction.Error, inputs: input, outputs: output, trackedProperties: trackedProperties, startTime: workflowRunAction.StartTime, endTime: workflowRunAction.EndTime); return(logicAppAction); }
private void ValidateRunAction1(WorkflowRunAction action) { Assert.Equal("/subscriptions/66666666-6666-6666-6666-666666666666/resourceGroups/rgName/providers/Microsoft.Logic/workflows/wfName/runs/08587692861242198730/actions/actName", action.Id); Assert.Equal("actName", action.Name); Assert.Equal("Microsoft.Logic/workflows/runs/actions", action.Type); Assert.Equal(2015, action.StartTime.Value.Year); Assert.Equal(06, action.StartTime.Value.Month); Assert.Equal(23, action.StartTime.Value.Day); Assert.Equal(21, action.StartTime.Value.Hour); Assert.Equal(47, action.StartTime.Value.Minute); Assert.Equal(00, action.StartTime.Value.Second); Assert.Equal(DateTimeKind.Utc, action.StartTime.Value.Kind); Assert.Equal(2015, action.EndTime.Value.Year); Assert.Equal(06, action.EndTime.Value.Month); Assert.Equal(23, action.EndTime.Value.Day); Assert.Equal(21, action.EndTime.Value.Hour); Assert.Equal(47, action.EndTime.Value.Minute); Assert.Equal(30, action.EndTime.Value.Second); Assert.Equal(DateTimeKind.Utc, action.EndTime.Value.Kind); Assert.Equal(WorkflowStatus.Succeeded, action.Status); Assert.Equal("OK", action.Code); Assert.Equal("2c9e4726-a395-4841-bf54-5e826ec04c30", action.TrackingId); Assert.Equal("https://input.blob.core.windows.net/", action.InputsLink.Uri); Assert.Equal("\"0x8D262D79EB296A8\"", action.InputsLink.ContentVersion); Assert.Equal(453, action.InputsLink.ContentSize); Assert.Equal("md5", action.InputsLink.ContentHash.Algorithm); Assert.Equal("ivHEPG5bzwNB9IFYRqsqOw==", action.InputsLink.ContentHash.Value); Assert.Equal("https://output.blob.core.windows.net/", action.OutputsLink.Uri); Assert.Equal("\"0x8D262D79EB296A8\"", action.OutputsLink.ContentVersion); Assert.Equal(713, action.OutputsLink.ContentSize); Assert.Equal("md5", action.OutputsLink.ContentHash.Algorithm); Assert.Equal("BWhA5Z1Rxaz0MwuDeQBykw==", action.OutputsLink.ContentHash.Value); }
private void ValidateRunAction1(WorkflowRunAction action) { Assert.True(this.ValidateIdFormat(id: action.Id, entityTypeName: "workflows", entitySubtypeName: "runs", entityMicrotypeName: "actions")); Assert.Equal("actName", action.Name); Assert.Equal("Microsoft.Logic/workflows/runs/actions", action.Type); Assert.Equal(2015, action.StartTime.Value.Year); Assert.Equal(06, action.StartTime.Value.Month); Assert.Equal(23, action.StartTime.Value.Day); Assert.Equal(21, action.StartTime.Value.Hour); Assert.Equal(47, action.StartTime.Value.Minute); Assert.Equal(00, action.StartTime.Value.Second); Assert.Equal(DateTimeKind.Utc, action.StartTime.Value.Kind); Assert.Equal(2015, action.EndTime.Value.Year); Assert.Equal(06, action.EndTime.Value.Month); Assert.Equal(23, action.EndTime.Value.Day); Assert.Equal(21, action.EndTime.Value.Hour); Assert.Equal(47, action.EndTime.Value.Minute); Assert.Equal(30, action.EndTime.Value.Second); Assert.Equal(DateTimeKind.Utc, action.EndTime.Value.Kind); Assert.Equal(WorkflowStatus.Succeeded, action.Status); Assert.Equal("OK", action.Code); Assert.Equal("2c9e4726-a395-4841-bf54-5e826ec04c30", action.TrackingId); Assert.Equal("https://input.blob.core.windows.net/", action.InputsLink.Uri); Assert.Equal("\"0x8D262D79EB296A8\"", action.InputsLink.ContentVersion); Assert.Equal(453, action.InputsLink.ContentSize); Assert.Equal("md5", action.InputsLink.ContentHash.Algorithm); Assert.Equal("ivHEPG5bzwNB9IFYRqsqOw==", action.InputsLink.ContentHash.Value); Assert.Equal("https://output.blob.core.windows.net/", action.OutputsLink.Uri); Assert.Equal("\"0x8D262D79EB296A8\"", action.OutputsLink.ContentVersion); Assert.Equal(713, action.OutputsLink.ContentSize); Assert.Equal("md5", action.OutputsLink.ContentHash.Algorithm); Assert.Equal("BWhA5Z1Rxaz0MwuDeQBykw==", action.OutputsLink.ContentHash.Value); Assert.NotNull(action.RetryHistory); var retryHistory0 = action.RetryHistory[0]; var retryHistory1 = action.RetryHistory[1]; Assert.Equal(2017, retryHistory0.StartTime.Value.Year); Assert.Equal(03, retryHistory0.StartTime.Value.Month); Assert.Equal(28, retryHistory0.StartTime.Value.Day); Assert.Equal(01, retryHistory0.StartTime.Value.Hour); Assert.Equal(17, retryHistory0.StartTime.Value.Minute); Assert.Equal(07, retryHistory0.StartTime.Value.Second); Assert.Equal(DateTimeKind.Utc, retryHistory0.StartTime.Value.Kind); Assert.Equal(2017, retryHistory0.EndTime.Value.Year); Assert.Equal(03, retryHistory0.EndTime.Value.Month); Assert.Equal(28, retryHistory0.EndTime.Value.Day); Assert.Equal(01, retryHistory0.EndTime.Value.Hour); Assert.Equal(17, retryHistory0.EndTime.Value.Minute); Assert.Equal(22, retryHistory0.EndTime.Value.Second); Assert.Equal(DateTimeKind.Utc, retryHistory0.EndTime.Value.Kind); Assert.Equal("BadRequest", retryHistory0.Code); Assert.Equal("2fabdcf3-4c32-4bbd-af19-e0642c38c645", retryHistory0.ClientRequestId); Assert.Equal("22222222-4c32-4bbd-aaaa-e0642c38c645", retryHistory0.ServiceRequestId); Assert.Equal("BadRequest", retryHistory0.Error.Error.Code); Assert.Equal("Http request failed: the timeout was reached.", retryHistory0.Error.Error.Message); Assert.Equal(2017, retryHistory1.StartTime.Value.Year); Assert.Equal(03, retryHistory1.StartTime.Value.Month); Assert.Equal(28, retryHistory1.StartTime.Value.Day); Assert.Equal(01, retryHistory1.StartTime.Value.Hour); Assert.Equal(17, retryHistory1.StartTime.Value.Minute); Assert.Equal(38, retryHistory1.StartTime.Value.Second); Assert.Equal(DateTimeKind.Utc, retryHistory1.StartTime.Value.Kind); Assert.Equal(2017, retryHistory1.EndTime.Value.Year); Assert.Equal(03, retryHistory1.EndTime.Value.Month); Assert.Equal(28, retryHistory1.EndTime.Value.Day); Assert.Equal(01, retryHistory1.EndTime.Value.Hour); Assert.Equal(17, retryHistory1.EndTime.Value.Minute); Assert.Equal(39, retryHistory1.EndTime.Value.Second); Assert.Equal(DateTimeKind.Utc, retryHistory1.EndTime.Value.Kind); Assert.Equal("ServiceUnavailable", retryHistory1.Code); Assert.Equal("015cece2-1149-4eba-8970-06b9286a1a30", retryHistory1.ClientRequestId); Assert.Null(retryHistory1.Error); }