Exemplo n.º 1
0
        public async Task Hanlde_ModifyEntityCommand_ModifiesEntityDefinitionInProjectAsync()
        {
            // arrange
            var project  = CreateProject();
            var entityId = project.Schema.Entities.First().Id;

            var command = new ModifyEntityCommand
            {
                Id          = project.Id,
                EntityId    = entityId,
                Name        = "NewEntityName",
                Description = "NewEntityDescription"
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            var entityDefinition = project.Schema.Entities.First(e => e.Id == entityId);

            Assert.Equal(command.Name, entityDefinition.Name);
            Assert.Equal(command.Description, entityDefinition.Description);
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Exemplo n.º 2
0
        public async Task Hanlde_ModifyProjectAttributesCommand_ModifiesAttributesFromProjectAsync()
        {
            // arrange
            var project = CreateProject();

            var command = new ModifyProjectCommand
            {
                Id          = project.Id,
                Name        = "NewProjectName",
                Description = "NewProjectDescription"
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            Assert.Equal(command.Name, project.Name);
            Assert.Equal(command.Description, project.Description);
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Exemplo n.º 3
0
        public async Task Hanlde_DeleteEntryCommand_RemovesEntryFromProjectAsync()
        {
            // arrange
            var project = CreateProject();
            var entryId = project.Configuration.Entities.First().Entries.First().Id;

            var command = new DeleteEntryCommand
            {
                Id      = project.Id,
                EntryId = entryId
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            var entry = project.Configuration.Entities.First().Entries.FirstOrDefault(e => e.Id == entryId);

            Assert.Null(entry);
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Exemplo n.º 4
0
        public async Task Hanlde_ModifyEntryCommand_UpdatesEntryValuesInProjectAsync()
        {
            // arrange
            var project = CreateProject();
            var entry   = project.Configuration.Entities.First().Entries.First();

            var command = new ModifyEntryCommand
            {
                Id      = project.Id,
                EntryId = entry.Id,
                Values  = new object[] { "A modifed value" }
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            Assert.Equal(command.Values, entry.Values.Select(v => v.Value));
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Exemplo n.º 5
0
        public async Task Hanlde_ModifyPropertyCommand_ModifiesPropertyDefinitionInProjectAsync()
        {
            // arrange
            var project  = CreateProject();
            var entity   = project.Schema.Entities.First();
            var property = entity.Properties.First();

            var command = new ModifyPropertyCommand
            {
                Id           = project.Id,
                PropertyId   = property.Id,
                Name         = "NewPropertyName",
                Description  = "NewPropertyDescription",
                PropertyType = "Zuehlke.Eacm.Integer"
            };

            var session = new Mock <ISession>();

            session.Setup(s => s.Get <Project>(project.Id, command.ExpectedVersion, It.IsAny <CancellationToken>())).Returns(Task.FromResult(project));

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            var propertyDefinition = entity.Properties.FirstOrDefault(p => p.Id == property.Id);

            Assert.Equal(command.Name, propertyDefinition.Name);
            Assert.Equal(command.Description, propertyDefinition.Description);
            Assert.Equal(command.PropertyType, propertyDefinition.PropertyType);
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }
Exemplo n.º 6
0
        public async Task Hanlde_CreateProjectCommand_AddsAndCommitsExpectedProject()
        {
            // arrange
            var command = new CreateProjectCommand {
                Id = Guid.NewGuid(), Name = "AnyProject"
            };
            var session = new Mock <ISession>();

            var target = new ProjectCommandHandler(session.Object);

            // act
            await target.Handle(command);

            // assert
            session.Verify(s => s.Add(It.Is <Project>(p => p.Id == command.Id && p.Name == command.Name), It.IsAny <CancellationToken>()));
            session.Verify(s => s.Commit(It.IsAny <CancellationToken>()));
        }