Browse Source

Tests added.

pull/337/head
Sebastian Stehle 8 years ago
parent
commit
ea06ddc2b4
  1. 4
      src/Squidex.Domain.Apps.Entities/Apps/InviteUserCommandMiddleware.cs
  2. 2
      src/Squidex/Config/Domain/EntitiesServices.cs
  3. 82
      tests/Squidex.Domain.Apps.Entities.Tests/Apps/InviteUserCommandMiddlewareTests.cs
  4. 16
      tests/Squidex.Infrastructure.Tests/GravatarHelperTests.cs
  5. 4
      tests/Squidex.Infrastructure.Tests/Json/ClaimsPrincipalConverterTests.cs
  6. 6
      tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs

4
src/Squidex.Domain.Apps.Entities/Apps/InviteCommandMiddleware.cs → src/Squidex.Domain.Apps.Entities/Apps/InviteUserCommandMiddleware.cs

@ -14,11 +14,11 @@ using Squidex.Shared.Users;
namespace Squidex.Domain.Apps.Entities.Apps namespace Squidex.Domain.Apps.Entities.Apps
{ {
public sealed class InviteCommandMiddleware : ICommandMiddleware public sealed class InviteUserCommandMiddleware : ICommandMiddleware
{ {
private readonly IUserResolver userResolver; private readonly IUserResolver userResolver;
public InviteCommandMiddleware(IUserResolver userResolver) public InviteUserCommandMiddleware(IUserResolver userResolver)
{ {
Guard.NotNull(userResolver, nameof(userResolver)); Guard.NotNull(userResolver, nameof(userResolver));

2
src/Squidex/Config/Domain/EntitiesServices.cs

@ -160,7 +160,7 @@ namespace Squidex.Config.Domain
services.AddSingletonAs<EnrichWithSchemaIdCommandMiddleware>() services.AddSingletonAs<EnrichWithSchemaIdCommandMiddleware>()
.As<ICommandMiddleware>(); .As<ICommandMiddleware>();
services.AddSingletonAs<InviteCommandMiddleware>() services.AddSingletonAs<InviteUserCommandMiddleware>()
.As<ICommandMiddleware>(); .As<ICommandMiddleware>();
services.AddSingletonAs<AssetCommandMiddleware>() services.AddSingletonAs<AssetCommandMiddleware>()

82
tests/Squidex.Domain.Apps.Entities.Tests/Apps/InviteUserCommandMiddlewareTests.cs

@ -0,0 +1,82 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Threading.Tasks;
using FakeItEasy;
using Squidex.Domain.Apps.Entities.Apps.Commands;
using Squidex.Infrastructure.Commands;
using Squidex.Shared.Users;
using Xunit;
namespace Squidex.Domain.Apps.Entities.Apps
{
public class InviteUserCommandMiddlewareTests
{
private readonly IUserResolver userResolver = A.Fake<IUserResolver>();
private readonly ICommandBus commandBus = A.Fake<ICommandBus>();
private readonly InviteUserCommandMiddleware sut;
public InviteUserCommandMiddlewareTests()
{
sut = new InviteUserCommandMiddleware(userResolver);
}
[Fact]
public async Task Should_invite_user_and_change_result()
{
var command = new AssignContributor { ContributorId = "me@email.com", IsInviting = true };
var context = new CommandContext(command, commandBus);
A.CallTo(() => userResolver.CreateUserIfNotExists("me@email.com"))
.Returns(true);
var result = EntityCreatedResult.Create("13", 13L);
context.Complete(result);
await sut.HandleAsync(context);
Assert.Same(context.Result<InvitedResult>().Id, result);
A.CallTo(() => userResolver.CreateUserIfNotExists("me@email.com"))
.MustHaveHappened();
}
[Fact]
public async Task Should_invite_user_and_not_change_result_if_not_added()
{
var command = new AssignContributor { ContributorId = "me@email.com", IsInviting = true };
var context = new CommandContext(command, commandBus);
A.CallTo(() => userResolver.CreateUserIfNotExists("me@email.com"))
.Returns(false);
var result = EntityCreatedResult.Create("13", 13L);
context.Complete(result);
await sut.HandleAsync(context);
Assert.Same(context.Result<EntityCreatedResult<string>>(), result);
A.CallTo(() => userResolver.CreateUserIfNotExists("me@email.com"))
.MustHaveHappened();
}
[Fact]
public async Task Should_not_calls_user_resolver_if_not_email()
{
var command = new AssignContributor { ContributorId = "123", IsInviting = true };
var context = new CommandContext(command, commandBus);
await sut.HandleAsync(context);
A.CallTo(() => userResolver.CreateUserIfNotExists(A<string>.Ignored))
.MustNotHaveHappened();
}
}
}

16
tests/Squidex.Infrastructure.Tests/GravatarHelperTests.cs

@ -12,25 +12,25 @@ namespace Squidex.Infrastructure
public class GravatarHelperTests public class GravatarHelperTests
{ {
[Theory] [Theory]
[InlineData("MyEmailAddress@example.com ")] [InlineData("me@email.com ")]
[InlineData("MyEmailAddress@example.com")] [InlineData("me@email.com")]
[InlineData("myemailaddress@example.com")] [InlineData("ME@email.com")]
public void Should_generate_picture_url(string email) public void Should_generate_picture_url(string email)
{ {
var url = GravatarHelper.CreatePictureUrl(email); var url = GravatarHelper.CreatePictureUrl(email);
Assert.Equal("https://www.gravatar.com/avatar/0bc83cb571cd1c50ba6f3e8a78ef1346", url); Assert.Equal("https://www.gravatar.com/avatar/8f9dc04e6abdcc9fea53e81945c7294b", url);
} }
[Theory] [Theory]
[InlineData("MyEmailAddress@example.com ")] [InlineData("me@email.com ")]
[InlineData("MyEmailAddress@example.com")] [InlineData("me@email.com")]
[InlineData("myemailaddress@example.com")] [InlineData("ME@email.com")]
public void Should_generate_profile_url(string email) public void Should_generate_profile_url(string email)
{ {
var url = GravatarHelper.CreateProfileUrl(email); var url = GravatarHelper.CreateProfileUrl(email);
Assert.Equal("https://www.gravatar.com/0bc83cb571cd1c50ba6f3e8a78ef1346", url); Assert.Equal("https://www.gravatar.com/8f9dc04e6abdcc9fea53e81945c7294b", url);
} }
} }
} }

4
tests/Squidex.Infrastructure.Tests/Json/ClaimsPrincipalConverterTests.cs

@ -23,8 +23,8 @@ namespace Squidex.Infrastructure.Json
new ClaimsIdentity( new ClaimsIdentity(
new[] new[]
{ {
new Claim("email", "me@email.de"), new Claim("email", "me@email.com"),
new Claim("username", "me@email.de") new Claim("username", "me@email.com")
}, },
"Cookie"), "Cookie"),
new ClaimsIdentity( new ClaimsIdentity(

6
tests/Squidex.Infrastructure.Tests/StringExtensionsTests.cs

@ -15,9 +15,9 @@ namespace Squidex.Infrastructure
[Theory] [Theory]
[InlineData(null, false)] [InlineData(null, false)]
[InlineData("", false)] [InlineData("", false)]
[InlineData("name", false)] [InlineData("me", false)]
[InlineData("name@@web.de", false)] [InlineData("me@@web.com", false)]
[InlineData("name@web.de", true)] [InlineData("me@web.com", true)]
public void Should_check_email(string email, bool isEmail) public void Should_check_email(string email, bool isEmail)
{ {
Assert.Equal(isEmail, email.IsEmail()); Assert.Equal(isEmail, email.IsEmail());

Loading…
Cancel
Save