Browse Source

Finish change status endpoints.

pull/222/head
Sebastian Stehle 8 years ago
parent
commit
7f014a9c5d
  1. 6
      src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/CommandVersionGraphType.cs
  2. 111
      tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs

6
src/Squidex.Domain.Apps.Entities/Contents/GraphQL/Types/CommandVersionGraphType.cs

@ -11,7 +11,7 @@ using Squidex.Infrastructure.Commands;
namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
public sealed class CommandVersionGraphType : ComplexGraphType<CommandContext> public sealed class CommandVersionGraphType : ObjectGraphType<CommandContext>
{ {
public CommandVersionGraphType() public CommandVersionGraphType()
{ {
@ -21,14 +21,14 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL.Types
{ {
Name = "version", Name = "version",
ResolvedType = new IntGraphType(), ResolvedType = new IntGraphType(),
Resolver = ResolveEtag(), Resolver = ResolveVersion(),
Description = "The new version of the item." Description = "The new version of the item."
}); });
Description = "The result of a mutation"; Description = "The result of a mutation";
} }
private static IFieldResolver ResolveEtag() private static IFieldResolver ResolveVersion()
{ {
return new FuncFieldResolver<CommandContext, int?>(x => return new FuncFieldResolver<CommandContext, int?>(x =>
{ {

111
tests/Squidex.Domain.Apps.Entities.Tests/Contents/GraphQL/GraphQLMutationTests.cs

@ -131,6 +131,117 @@ namespace Squidex.Domain.Apps.Entities.Contents.GraphQL
AssertResult(expected, result); AssertResult(expected, result);
} }
[Fact]
public async Task Should_publish_command_for_publish()
{
var contentId = Guid.NewGuid();
var query = $@"
mutation {{
publishMySchemaContent(id: ""{contentId}"") {{
version
}}
}}";
commandContext.Complete(new EntitySavedResult(13));
var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query });
var expected = new
{
data = new
{
publishMySchemaContent = new
{
version = 13
}
}
};
AssertResult(expected, result);
A.CallTo(() => commandBus.PublishAsync(
A<ChangeContentStatus>.That.Matches(x =>
x.SchemaId.Equals(schema.NamedId()) &&
x.ContentId == contentId &&
x.Status == Status.Published)))
.MustHaveHappened();
}
[Fact]
public async Task Should_publish_command_for_unpublish()
{
var contentId = Guid.NewGuid();
var query = $@"
mutation {{
unpublishMySchemaContent(id: ""{contentId}"") {{
version
}}
}}";
commandContext.Complete(new EntitySavedResult(13));
var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query });
var expected = new
{
data = new
{
unpublishMySchemaContent = new
{
version = 13
}
}
};
AssertResult(expected, result);
A.CallTo(() => commandBus.PublishAsync(
A<ChangeContentStatus>.That.Matches(x =>
x.SchemaId.Equals(schema.NamedId()) &&
x.ContentId == contentId &&
x.Status == Status.Draft)))
.MustHaveHappened();
}
[Fact]
public async Task Should_publish_command_for_archive()
{
var contentId = Guid.NewGuid();
var query = $@"
mutation {{
archiveMySchemaContent(id: ""{contentId}"") {{
version
}}
}}";
commandContext.Complete(new EntitySavedResult(13));
var result = await sut.QueryAsync(app, user, new GraphQLQuery { Query = query });
var expected = new
{
data = new
{
archiveMySchemaContent = new
{
version = 13
}
}
};
AssertResult(expected, result);
A.CallTo(() => commandBus.PublishAsync(
A<ChangeContentStatus>.That.Matches(x =>
x.SchemaId.Equals(schema.NamedId()) &&
x.ContentId == contentId &&
x.Status == Status.Archived)))
.MustHaveHappened();
}
[Fact] [Fact]
public async Task Should_publish_command_for_restore() public async Task Should_publish_command_for_restore()
{ {

Loading…
Cancel
Save