Browse Source

Add tests for workflows.

pull/722/head
Sebastian 5 years ago
parent
commit
428639e8d3
  1. 81
      backend/tools/TestSuite/TestSuite.ApiTests/AppTests.cs

81
backend/tools/TestSuite/TestSuite.ApiTests/AppTests.cs

@ -270,10 +270,10 @@ namespace TestSuite.ApiTests
await _.Apps.PostLanguageAsync(appName, new AddLanguageDto { Language = "fr" }); await _.Apps.PostLanguageAsync(appName, new AddLanguageDto { Language = "fr" });
var languages_1 = await _.Apps.GetLanguagesAsync(appName); var languages_1 = await _.Apps.GetLanguagesAsync(appName);
var languageEN_1 = languages_1.Items.First(x => x.Iso2Code == "en"); var language1_EN = languages_1.Items.FirstOrDefault(x => x.Iso2Code == "en");
Assert.Equal(new string[] { "en", "de", "fr", "it" }, languages_1.Items.Select(x => x.Iso2Code).ToArray()); Assert.Equal(new string[] { "en", "de", "fr", "it" }, languages_1.Items.Select(x => x.Iso2Code).ToArray());
Assert.True(languageEN_1.IsMaster); Assert.True(language1_EN.IsMaster);
// STEP 3: Update German language. // STEP 3: Update German language.
@ -288,10 +288,10 @@ namespace TestSuite.ApiTests
}; };
var languages_2 = await _.Apps.PutLanguageAsync(appName, "de", updateRequest1); var languages_2 = await _.Apps.PutLanguageAsync(appName, "de", updateRequest1);
var languageDE_2 = languages_2.Items.First(x => x.Iso2Code == "de"); var language2_EN = languages_2.Items.FirstOrDefault(x => x.Iso2Code == "de");
Assert.Equal(new string[] { "fr", "it" }, languageDE_2.Fallback.ToArray()); Assert.Equal(new string[] { "fr", "it" }, language2_EN.Fallback.ToArray());
Assert.True(languageDE_2.IsOptional); Assert.True(language2_EN.IsOptional);
// STEP 4: Update Italian language. // STEP 4: Update Italian language.
@ -305,7 +305,7 @@ namespace TestSuite.ApiTests
}; };
var languages_3 = await _.Apps.PutLanguageAsync(appName, "it", updateRequest2); var languages_3 = await _.Apps.PutLanguageAsync(appName, "it", updateRequest2);
var languageDE_3 = languages_3.Items.First(x => x.Iso2Code == "it"); var languageDE_3 = languages_3.Items.FirstOrDefault(x => x.Iso2Code == "it");
Assert.Equal(new string[] { "fr", "de" }, languageDE_3.Fallback.ToArray()); Assert.Equal(new string[] { "fr", "de" }, languageDE_3.Fallback.ToArray());
@ -314,25 +314,76 @@ namespace TestSuite.ApiTests
var masterRequest = new UpdateLanguageDto { IsMaster = true }; var masterRequest = new UpdateLanguageDto { IsMaster = true };
var languages_4 = await _.Apps.PutLanguageAsync(appName, "it", masterRequest); var languages_4 = await _.Apps.PutLanguageAsync(appName, "it", masterRequest);
var language4_IT = languages_4.Items.FirstOrDefault(x => x.Iso2Code == "it");
var language4_EN = languages_4.Items.FirstOrDefault(x => x.Iso2Code == "en");
var languageIT_4 = languages_4.Items.First(x => x.Iso2Code == "it"); Assert.True(language4_IT.IsMaster);
var languageEN_4 = languages_4.Items.First(x => x.Iso2Code == "en"); Assert.False(language4_IT.IsOptional);
Assert.False(language4_EN.IsMaster);
Assert.True(languageIT_4.IsMaster); Assert.Empty(language4_IT.Fallback);
Assert.False(languageIT_4.IsOptional);
Assert.False(languageEN_4.IsMaster);
Assert.Empty(languageIT_4.Fallback);
Assert.Equal(new string[] { "it", "de", "en", "fr" }, languages_4.Items.Select(x => x.Iso2Code).ToArray()); Assert.Equal(new string[] { "it", "de", "en", "fr" }, languages_4.Items.Select(x => x.Iso2Code).ToArray());
// STEP 6: Remove language. // STEP 6: Remove language.
var languages_5 = await _.Apps.DeleteLanguageAsync(appName, "fr"); var languages_5 = await _.Apps.DeleteLanguageAsync(appName, "fr");
var languageDE_5 = languages_5.Items.First(x => x.Iso2Code == "de"); var language5_DE = languages_5.Items.FirstOrDefault(x => x.Iso2Code == "de");
Assert.Equal(new string[] { "it" }, languageDE_5.Fallback.ToArray()); Assert.Equal(new string[] { "it" }, language5_DE.Fallback.ToArray());
Assert.Equal(new string[] { "it", "de", "en" }, languages_5.Items.Select(x => x.Iso2Code).ToArray()); Assert.Equal(new string[] { "it", "de", "en" }, languages_5.Items.Select(x => x.Iso2Code).ToArray());
} }
[Fact]
public async Task Should_manage_workflows()
{
var workflowName = Guid.NewGuid().ToString();
// STEP 0: Create workflow.
var createRequest = new AddWorkflowDto
{
Name = workflowName
};
var workflows_1 = await _.Apps.PostWorkflowAsync(_.AppName, createRequest);
var workflow_1 = workflows_1.Items.FirstOrDefault(x => x.Name == workflowName);
Assert.NotNull(workflow_1);
Assert.NotNull(workflow_1.Name);
Assert.Equal(3, workflow_1.Steps.Count);
// STEP 1: Update workflow.
var updateRequest = new UpdateWorkflowDto
{
Initial = "Draft",
Steps = new Dictionary<string, WorkflowStepDto>
{
["Draft"] = new WorkflowStepDto
{
Transitions = new Dictionary<string, WorkflowTransitionDto>
{
["Published"] = new WorkflowTransitionDto()
}
},
["Published"] = new WorkflowStepDto(),
},
Name = workflowName
};
var workflows_2 = await _.Apps.PutWorkflowAsync(_.AppName, workflow_1.Id, updateRequest);
var workflow_2 = workflows_2.Items.FirstOrDefault(x => x.Name == workflowName);
Assert.NotNull(workflow_2);
Assert.NotNull(workflow_2.Name);
Assert.Equal(2, workflow_2.Steps.Count);
// STEP 2: Delete workflow.
var workflows_3 = await _.Apps.DeleteWorkflowAsync(_.AppName, workflow_1.Id);
var workflow_3 = workflows_3.Items.FirstOrDefault(x => x.Name == workflowName);
Assert.Null(workflow_3);
}
[Fact] [Fact]
public async Task Should_manage_settings() public async Task Should_manage_settings()
{ {

Loading…
Cancel
Save