Browse Source

Tests brought back and fixed.

pull/306/head
Sebastian 8 years ago
parent
commit
ba0e601de5
  1. 6
      src/Squidex.Domain.Apps.Entities/Rules/Guards/RuleActionValidator.cs
  2. 85
      tests/Squidex.Domain.Apps.Entities.Tests/Rules/Guards/Actions/MediumActionTests.cs

6
src/Squidex.Domain.Apps.Entities/Rules/Guards/RuleActionValidator.cs

@ -116,9 +116,9 @@ namespace Squidex.Domain.Apps.Entities.Rules.Guards
errors.Add(new ValidationError("Access token is required.", nameof(action.AccessToken)));
}
if (string.IsNullOrWhiteSpace(action.Author) && !string.IsNullOrWhiteSpace(action.Publication))
if (string.IsNullOrWhiteSpace(action.Author) && string.IsNullOrWhiteSpace(action.Publication))
{
errors.Add(new ValidationError("Author or publication id is required.", nameof(action.Author), nameof(action.Publication)));
errors.Add(new ValidationError("Author or publication is required.", nameof(action.Author), nameof(action.Publication)));
}
if (string.IsNullOrWhiteSpace(action.Content))
@ -128,7 +128,7 @@ namespace Squidex.Domain.Apps.Entities.Rules.Guards
if (string.IsNullOrWhiteSpace(action.Title))
{
errors.Add(new ValidationError("Title is required.", nameof(action.Content)));
errors.Add(new ValidationError("Title is required.", nameof(action.Title)));
}
return Task.FromResult<IEnumerable<ValidationError>>(errors);

85
tests/Squidex.Domain.Apps.Entities.Tests/Rules/Guards/Actions/MediumActionTests.cs

@ -0,0 +1,85 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Collections.Generic;
using System.Threading.Tasks;
using FluentAssertions;
using Squidex.Domain.Apps.Core.Rules.Actions;
using Squidex.Infrastructure;
using Xunit;
namespace Squidex.Domain.Apps.Entities.Rules.Guards.Actions
{
public class MediumActionTests
{
[Fact]
public async Task Should_add_error_if_access_token_is_null()
{
var action = new MediumAction { AccessToken = null, Author = "author", Title = "title", Content = "content" };
var errors = await RuleActionValidator.ValidateAsync(action);
errors.Should().BeEquivalentTo(
new List<ValidationError>
{
new ValidationError("Access token is required.", "AccessToken")
});
}
[Fact]
public async Task Should_add_error_if_author_is_null()
{
var action = new MediumAction { AccessToken = "token", Author = null, Title = "title", Content = "content" };
var errors = await RuleActionValidator.ValidateAsync(action);
errors.Should().BeEquivalentTo(
new List<ValidationError>
{
new ValidationError("Author or publication is required.", "Author", "Publication")
});
}
[Fact]
public async Task Should_add_error_if_title_null()
{
var action = new MediumAction { AccessToken = "token", Author = "author", Title = null, Content = "content" };
var errors = await RuleActionValidator.ValidateAsync(action);
errors.Should().BeEquivalentTo(
new List<ValidationError>
{
new ValidationError("Title is required.", "Title")
});
}
[Fact]
public async Task Should_add_error_if_content_is_null()
{
var action = new MediumAction { AccessToken = "token", Author = "author", Title = "title", Content = null };
var errors = await RuleActionValidator.ValidateAsync(action);
errors.Should().BeEquivalentTo(
new List<ValidationError>
{
new ValidationError("Content is required.", "Content")
});
}
[Fact]
public async Task Should_not_add_error_if_values_are_valid()
{
var action = new MediumAction { AccessToken = "token", Author = "author", Title = "title", Content = "content" };
var errors = await RuleActionValidator.ValidateAsync(action);
Assert.Empty(errors);
}
}
}
Loading…
Cancel
Save