public async Task CreateShouldSucceed() { // Arrange var id = Guid.NewGuid(); var name = "Kalo"; var description = "SourceDescription"; var businessUnit1Name = "BSG"; var businessUnit2Name = "BSG1"; var source = new Source(id, name, description); var sourceBusinessUnit1 = new SourceBusinessUnit(businessUnit1Name); var sourceBusinessUnit2 = new SourceBusinessUnit(businessUnit2Name); source.AddSourceBusinessUnit(sourceBusinessUnit1); source.AddSourceBusinessUnit(sourceBusinessUnit2); // Act await _repository.CreateAsync(source); // Assert var data = RepositoryHelper.ForSource.GetSources(); data.Should().HaveCount(1); var result = data.First(); result.Name.Should().Be(name); result.Description.Should().Be(description); result.SourceBusinessUnits.Should().NotBeNull(); result.SourceBusinessUnits.Count().Should().Be(2); }
public static Source CreateSource(Guid id, string name, string description, IEnumerable <SourceBusinessUnit> sourceBusinessUnits) { // prepare var writeRepository = new SourceWriteRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString))); var readRepository = new SourceReadRepository(new DataContext(new PersistenceConfiguration(RepositoryTestsHelper.ConnectionString))); // create var source = new Source(id, name, description); foreach (var sourceBusinessUnit in sourceBusinessUnits) { source.AddSourceBusinessUnit(sourceBusinessUnit); } writeRepository.CreateAsync(source).GetAwaiter().GetResult(); // result var result = readRepository.GetAsync(id).Result; return(result); }
public async Task <Result> Handle(CreateSourceCommand request, CancellationToken cancellationToken) { var id = _identifierProvider.Generate(); var sourceToCreate = new Source(id, request.Name, request.Description); foreach (var sourceBusinessUnit in request.SourceBusinessUnits) { sourceToCreate.AddSourceBusinessUnit(new SourceBusinessUnit(sourceBusinessUnit)); } sourceToCreate.Version = _versionProvider.Generate(); Result result; try { await _sourceWriteRepository.CreateAsync(sourceToCreate); result = Result.Ok(id, sourceToCreate.Version); } catch (UniqueKeyException) { result = Result.Fail(new System.Collections.Generic.List <Failure>() { new HandlerFault() { Code = HandlerFaultCode.Conflict.Name, Message = HandlerFailures.Conflict, Target = "name" } } ); } catch { result = Result.Fail(CustomFailures.CreateSourceFailure); } return(result); }