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
{
public sealed class InviteCommandMiddleware : ICommandMiddleware
public sealed class InviteUserCommandMiddleware : ICommandMiddleware
{
private readonly IUserResolver userResolver;
public InviteCommandMiddleware(IUserResolver userResolver)
public InviteUserCommandMiddleware(IUserResolver userResolver)
{
Guard.NotNull(userResolver, nameof(userResolver));

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

@ -160,7 +160,7 @@ namespace Squidex.Config.Domain
services.AddSingletonAs<EnrichWithSchemaIdCommandMiddleware>()
.As<ICommandMiddleware>();
services.AddSingletonAs<InviteCommandMiddleware>()
services.AddSingletonAs<InviteUserCommandMiddleware>()
.As<ICommandMiddleware>();
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
{
[Theory]
[InlineData("MyEmailAddress@example.com ")]
[InlineData("MyEmailAddress@example.com")]
[InlineData("myemailaddress@example.com")]
[InlineData("me@email.com ")]
[InlineData("me@email.com")]
[InlineData("ME@email.com")]
public void Should_generate_picture_url(string 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]
[InlineData("MyEmailAddress@example.com ")]
[InlineData("MyEmailAddress@example.com")]
[InlineData("myemailaddress@example.com")]
[InlineData("me@email.com ")]
[InlineData("me@email.com")]
[InlineData("ME@email.com")]
public void Should_generate_profile_url(string 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[]
{
new Claim("email", "me@email.de"),
new Claim("username", "me@email.de")
new Claim("email", "me@email.com"),
new Claim("username", "me@email.com")
},
"Cookie"),
new ClaimsIdentity(

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

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

Loading…
Cancel
Save