private static void CopyCompanyCommandPropertiesFrom(this ICompanyCommand target, ICompanyCommand src)
        {
            if (src == null || target == null)
                return;

            target.CommandCompanyId = src.CommandCompanyId;
        }
        //----------------------------------------------------------------//

        public FeedManager(ISession session, IServiceProvider provider)
        {
            _commandFactory = provider.GetService <ICommandFactory>();
            _queryFactory   = provider.GetService <IQueryFactory>();

            _genreCommand      = _commandFactory.CreateCommand <IGenreCommand>(session);
            _companyCommand    = _commandFactory.CreateCommand <ICompanyCommand>(session);
            _countryCommand    = _commandFactory.CreateCommand <ICountryCommand>(session);
            _peopleCommad      = _commandFactory.CreateCommand <IPeopleCommand>(session);
            _movieCommand      = _commandFactory.CreateCommand <IMovieCommand>(session);
            _castCommand       = _commandFactory.CreateCommand <ICastCommand>(session);
            _crewCommand       = _commandFactory.CreateCommand <ICrewCommand>(session);
            _jobCommand        = _commandFactory.CreateCommand <IJobCommand>(session);
            _departmentCommand = _commandFactory.CreateCommand <IDepartmentCommand>(session);

            _movieGenreCommand   = _commandFactory.CreateCommand <IMovieGenreCommand>(session);
            _movieCompanyCommand = _commandFactory.CreateCommand <IMovieCompanyCommand>(session);
            _movieCountryCommand = _commandFactory.CreateCommand <IMovieCountryCommand>(session);

            _movieCountryQuery = _queryFactory.CreateQuery <IMovieCountryQuery>(session);
            _movieCompanyQuery = _queryFactory.CreateQuery <IMovieCompanyQuery>(session);
            _movieGenreQuery   = _queryFactory.CreateQuery <IMovieGenreQuery>(session);

            _movieQuery      = _queryFactory.CreateQuery <IMovieQuery>(session);
            _genreQuery      = _queryFactory.CreateQuery <IGenreQuery>(session);
            _companyQuery    = _queryFactory.CreateQuery <ICompanyQuery>(session);
            _countryQuery    = _queryFactory.CreateQuery <ICountryQuery>(session);
            _castQuery       = _queryFactory.CreateQuery <ICastQuery>(session);
            _crewQuery       = _queryFactory.CreateQuery <ICrewQuery>(session);
            _peopleQuery     = _queryFactory.CreateQuery <IPeopleQuery>(session);
            _jobQuery        = _queryFactory.CreateQuery <IJobQuery>(session);
            _departmentQuery = _queryFactory.CreateQuery <IDepartmentQuery>(session);

            _loadDataService = provider.GetRequiredService <ILoadDataService>();
        }
 public CompanyService(
     ICompanyCommand companyCommand,
     ICompanyQuery companyQuery)
 {
     _companyCommand = companyCommand;
     _companyQuery   = companyQuery;
 }
        public void Validate_WhenCalled_ReturnsValidator()
        {
            ICompanyCommand sut = CreateSut();

            IValidator result = sut.Validate(_validatorMockContext.ValidatorMock.Object);

            Assert.That(result, Is.EqualTo(_validatorMockContext.ValidatorMock.Object));
        }
        public void Validate_WhenValidatorIsNull_ThrowsArgumentNullException()
        {
            ICompanyCommand sut = CreateSut();

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Validate(null));

            Assert.That(result.ParamName, Is.EqualTo("validator"));
        }
Exemple #6
0
 public CompanyService(ICompanyQuery companyQuery, ICompanyCommand companyCommand,
                       IContactQuery contactQuery, IMapper mapper)
 {
     _companyQuery   = companyQuery;
     _companyCommand = companyCommand;
     _contactQuery   = contactQuery;
     _mapper         = mapper;
 }
Exemple #7
0
        public void ToDomain_WhenCommandDoesNotHaveAddressCommand_ReturnsContactWithEmptyAddress()
        {
            ICompanyCommand sut = CreateSut(hasAddressCommand: false);

            IAddress result = sut.ToDomain().Address;

            Assert.That(result.DisplayAddress, Is.EqualTo(string.Empty));
        }
Exemple #8
0
        public void ToDomain_WhenCommandDoesNotHaveSecondaryPhone_ReturnsContactWithoutSecondaryPhone()
        {
            ICompanyCommand sut = CreateSut(hasSecondaryPhone: false);

            string result = sut.ToDomain().SecondaryPhone;

            Assert.That(result, Is.Null);
        }
Exemple #9
0
        public void ToDomain_WhenCalled_ReturnsCompany()
        {
            ICompanyCommand sut = CreateSut();

            ICompany result = sut.ToDomain();

            Assert.That(result, Is.TypeOf <Company>());
        }
Exemple #10
0
        public void ToDomain_WhenCommandDoesNotHaveHomePage_ReturnsContactWithoutHomePage()
        {
            ICompanyCommand sut = CreateSut(hasHomePage: false);

            string result = sut.ToDomain().HomePage;

            Assert.That(result, Is.Null);
        }
        public void Validate_WhenCommandDoesNotHaveAddressCommand_AssertValidateWasNotCalledOnAddressCommand()
        {
            Mock <IAddressCommand> addressCommandMock = CreateAddressCommandMock();
            ICompanyCommand        sut = CreateSut(hasAddressCommand: false, addressCommand: addressCommandMock.Object);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            addressCommandMock.Verify(m => m.Validate(It.IsAny <IValidator>()), Times.Never);
        }
Exemple #12
0
        public void ToDomain_WhenCommandHasAddressCommandWhichAreEmpty_ReturnsContactWithEmptyAddress()
        {
            IAddressCommand addressCommand = CreateAddressCommandMock(true).Object;
            ICompanyCommand sut            = CreateSut(addressCommand: addressCommand);

            IAddress result = sut.ToDomain().Address;

            Assert.That(result.DisplayAddress, Is.EqualTo(string.Empty));
        }
Exemple #13
0
        public void ToDomain_WhenCommandHasHomePage_ReturnsContactWithHomePageFromCommand()
        {
            string          homePage = _fixture.Create <string>();
            ICompanyCommand sut      = CreateSut(homePage: homePage);

            string result = sut.ToDomain().HomePage;

            Assert.That(result, Is.EqualTo(homePage));
        }
Exemple #14
0
        public void ToDomain_WhenCommandHasCompanyNameCommand_AssertToDomainWasCalledOnCompanyNameCommand()
        {
            Mock <ICompanyNameCommand> companyNameCommandMock = CreateCompanyNameCommandMock();
            ICompanyCommand            sut = CreateSut(companyNameCommandMock.Object);

            sut.ToDomain();

            companyNameCommandMock.Verify(m => m.ToDomain(), Times.Once());
        }
Exemple #15
0
        public void ToDomain_WhenCommandDoesNotHaveAddressCommand_AssertToDomainWasNotCalledOnAddressCommand()
        {
            Mock <IAddressCommand> addressCommandMock = CreateAddressCommandMock();
            ICompanyCommand        sut = CreateSut(hasAddressCommand: false, addressCommand: addressCommandMock.Object);

            sut.ToDomain();

            addressCommandMock.Verify(m => m.ToDomain(), Times.Never);
        }
Exemple #16
0
        public void ToDomain_WhenCommandHasAddressCommandWhichAreNotEmpty_AssertToDomainWasCalledOnAddressCommand()
        {
            Mock <IAddressCommand> addressCommandMock = CreateAddressCommandMock();
            ICompanyCommand        sut = CreateSut(addressCommand: addressCommandMock.Object);

            sut.ToDomain();

            addressCommandMock.Verify(m => m.ToDomain(), Times.Once());
        }
        public void Validate_WhenCommandHasAddressCommand_AssertValidateWasCalledOnAddressCommand()
        {
            Mock <IAddressCommand> addressCommandMock = CreateAddressCommandMock();
            ICompanyCommand        sut = CreateSut(addressCommand: addressCommandMock.Object);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            addressCommandMock.Verify(m => m.Validate(It.Is <IValidator>(value => value == _validatorMockContext.ValidatorMock.Object)), Times.Once);
        }
Exemple #18
0
        public void ToDomain_WhenCommandHasSecondaryPhone_ReturnsContactWithSecondaryPhoneFromCommand()
        {
            string          secondaryPhone = _fixture.Create <string>();
            ICompanyCommand sut            = CreateSut(secondaryPhone: secondaryPhone);

            string result = sut.ToDomain().SecondaryPhone;

            Assert.That(result, Is.EqualTo(secondaryPhone));
        }
        public void Validate_WhenCommandDoesNotHaveCompanyNameCommand_AssertValidateWasNotCalledOnCompanyNameCommand()
        {
            Mock <ICompanyNameCommand> companyNameCommandMock = CreateCompanyNameCommandMock();
            ICompanyCommand            sut = CreateSut(false, companyNameCommandMock.Object);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            companyNameCommandMock.Verify(m => m.Validate(It.IsAny <IValidator>()), Times.Never);
        }
Exemple #20
0
        public void ToDomain_WhenCalled_ReturnsContactWithValueFromToDomainOnNameCommand()
        {
            ICompanyName        companyName        = _fixture.BuildCompanyNameMock().Object;
            ICompanyNameCommand companyNameCommand = CreateCompanyNameCommandMock(companyName).Object;
            ICompanyCommand     sut = CreateSut(companyNameCommand);

            IName result = sut.ToDomain().Name;

            Assert.That(result, Is.EqualTo(companyName));
        }
        public void ToDomain_WhenCommandHasCompanyCommand_ReturnsContactWithCompanyFromCommand()
        {
            ICompany            company        = _fixture.BuildCompanyMock().Object;
            ICompanyCommand     companyCommand = CreateCompanyCommandMock(company).Object;
            IContactDataCommand sut            = CreateSut(companyCommand: companyCommand);

            ICompany result = sut.ToDomain(_contactRepositoryMock.Object, _accountingRepositoryMock.Object).Company;

            Assert.That(result, Is.EqualTo(company));
        }
Exemple #22
0
        public void ToDomain_WhenCommandHasAddressCommandWhichAreNotEmpty_ReturnsContactWithValueFromToDomainOnAddressCommand()
        {
            IAddress        address        = _fixture.BuildAddressMock().Object;
            IAddressCommand addressCommand = CreateAddressCommandMock(address: address).Object;
            ICompanyCommand sut            = CreateSut(addressCommand: addressCommand);

            IAddress result = sut.ToDomain().Address;

            Assert.That(result, Is.EqualTo(address));
        }
        public void Validate_WhenCalled_AssertShouldNotBeNullWasCalledOnObjectValidatorForName()
        {
            ICompanyNameCommand companyNameCommand = CreateCompanyNameCommandMock().Object;
            ICompanyCommand     sut = CreateSut(companyNameCommand: companyNameCommand);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            _validatorMockContext.ObjectValidatorMock.Verify(m => m.ShouldNotBeNull(
                                                                 It.Is <ICompanyNameCommand>(value => value == companyNameCommand),
                                                                 It.Is <Type>(value => value == sut.GetType()),
                                                                 It.Is <string>(value => string.CompareOrdinal(value, "Name") == 0)),
                                                             Times.Once);
        }
        public void Validate_WhenCalled_AssertShouldMatchPatternWasCalledOnStringValidatorForHomePage()
        {
            string          homePage = _fixture.Create <string>();
            ICompanyCommand sut      = CreateSut(homePage: homePage);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            _validatorMockContext.StringValidatorMock.Verify(m => m.ShouldMatchPattern(
                                                                 It.Is <string>(value => string.CompareOrdinal(value, homePage) == 0),
                                                                 It.Is <Regex>(value => string.CompareOrdinal(value.ToString(), RegexTestHelper.UrlRegexPattern) == 0),
                                                                 It.Is <Type>(value => value == sut.GetType()),
                                                                 It.Is <string>(value => string.CompareOrdinal(value, "HomePage") == 0),
                                                                 It.Is <bool>(value => value)),
                                                             Times.Once);
        }
        public void Validate_WhenCalled_AssertShouldHaveMaxLengthWasCalledOnStringValidatorForHomePage()
        {
            string          homePage = _fixture.Create <string>();
            ICompanyCommand sut      = CreateSut(homePage: homePage);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            _validatorMockContext.StringValidatorMock.Verify(m => m.ShouldHaveMaxLength(
                                                                 It.Is <string>(value => string.CompareOrdinal(value, homePage) == 0),
                                                                 It.Is <int>(value => value == 256),
                                                                 It.Is <Type>(value => value == sut.GetType()),
                                                                 It.Is <string>(value => string.CompareOrdinal(value, "HomePage") == 0),
                                                                 It.Is <bool>(value => value)),
                                                             Times.Once);
        }
        public void Validate_WhenCalled_AssertShouldHaveMinLengthWasCalledOnStringValidatorForSecondaryPhone()
        {
            string          secondaryPhone = _fixture.Create <string>();
            ICompanyCommand sut            = CreateSut(secondaryPhone: secondaryPhone);

            sut.Validate(_validatorMockContext.ValidatorMock.Object);

            _validatorMockContext.StringValidatorMock.Verify(m => m.ShouldHaveMinLength(
                                                                 It.Is <string>(value => string.CompareOrdinal(value, secondaryPhone) == 0),
                                                                 It.Is <int>(value => value == 1),
                                                                 It.Is <Type>(value => value == sut.GetType()),
                                                                 It.Is <string>(value => string.CompareOrdinal(value, "SecondaryPhone") == 0),
                                                                 It.Is <bool>(value => value)),
                                                             Times.Once);
        }
        private static void RegisterCompanyCommand(this IBelongToCompany document, ICompanyCommand command)
        {
            if (document == null || command == null)
                return;

            if (string.IsNullOrWhiteSpace(document.CompanyId))
                document.CompanyId = command.CommandCompanyId;

            if (command.CommandCompanyId == null)
                throw new ApplicationException(string.Format("Command doesn't have company id. {0}, {1}", command.GetType().Name, command.ToJson()));

            if (document.CompanyId == AdministratorCompany) //HACK: allow updates of admin docs
                return;

            if (document.CompanyId == command.CommandCompanyId)
                return;

            var msg = string.Format("Attempt to update different company. document: {0}. command {1}",
                                    document.ToJson(), command.ToJson());
            throw new AccessViolationException(msg);
        }
        private IContactDataCommand CreateSut(INameCommand nameCommand = null, bool hasAddressCommand = true, IAddressCommand addressCommand = null, bool hasHomePhone = true, string homePhone = null, bool hasMobilePhone = true, string mobilePhone = null, bool hasBirthday = true, DateTime?birthday = null, bool hasMailAddress = true, string mailAddress = null, bool hasCompanyCommand = true, ICompanyCommand companyCommand = null, int?contactGroupIdentifier = null, IContactGroup contactGroup = null, int?paymentTermIdentifier = null, bool hasAcquaintance = true, string acquaintance = null, bool hasPersonalHomePage = true, string personalHomePage = null, int?lendingLimit = null, IPaymentTerm paymentTerm = null)
        {
            _contactRepositoryMock.Setup(m => m.GetContactGroupAsync(It.IsAny <int>()))
            .Returns(Task.Run(() => contactGroup ?? _fixture.BuildContactGroupMock().Object));
            _accountingRepositoryMock.Setup(m => m.GetPaymentTermAsync(It.IsAny <int>()))
            .Returns(Task.Run(() => paymentTerm ?? _fixture.BuildPaymentTermMock().Object));

            return(_fixture.Build <Sut>()
                   .With(m => m.Name, nameCommand ?? CreateNameCommandMock().Object)
                   .With(m => m.Address, hasAddressCommand ? addressCommand ?? CreateAddressCommandMock().Object : null)
                   .With(m => m.HomePhone, hasHomePhone ? homePhone ?? _fixture.Create <string>() : null)
                   .With(m => m.MobilePhone, hasMobilePhone ? mobilePhone ?? _fixture.Create <string>() : null)
                   .With(m => m.Birthday, hasBirthday ? birthday ?? _fixture.Create <DateTime>() : (DateTime?)null)
                   .With(m => m.MailAddress, hasMailAddress ? mailAddress ?? _fixture.Create <string>() : null)
                   .With(m => m.Company, hasCompanyCommand ? companyCommand ?? CreateCompanyCommandMock().Object : null)
                   .With(m => m.ContactGroupIdentifier, contactGroupIdentifier ?? _fixture.Create <int>())
                   .With(m => m.Acquaintance, hasAcquaintance ? acquaintance ?? _fixture.Create <string>() : null)
                   .With(m => m.PersonalHomePage, hasPersonalHomePage ? personalHomePage ?? _fixture.Create <string>() : null)
                   .With(m => m.LendingLimit, lendingLimit ?? _fixture.Create <int>())
                   .With(m => m.PaymentTermIdentifier, paymentTermIdentifier ?? _fixture.Create <int>())
                   .Create());
        }
 private IContactDataCommand CreateSut(bool hasNameCommand = true, INameCommand nameCommand = null, bool hasAddressCommand = true, IAddressCommand addressCommand = null, string homePhone = null, string mobilePhone = null, bool hasBirthday = true, DateTime?birthday = null, string mailAddress = null, bool hasCompanyCommand = true, ICompanyCommand companyCommand = null, int?contactGroupIdentifier = null, string acquaintance = null, string personalHomePage = null, int?lendingLimit = null, int?paymentTermIdentifier = null)
 {
     return(_fixture.Build <Sut>()
            .With(m => m.Name, hasNameCommand ? nameCommand ?? CreateNameCommandMock().Object : null)
            .With(m => m.Address, hasAddressCommand ? addressCommand ?? CreateAddressCommandMock().Object : null)
            .With(m => m.HomePhone, homePhone ?? _fixture.Create <string>())
            .With(m => m.MobilePhone, mobilePhone ?? _fixture.Create <string>())
            .With(m => m.Birthday, hasBirthday ? birthday ?? _fixture.Create <DateTime>() : (DateTime?)null)
            .With(m => m.MailAddress, mailAddress ?? _fixture.Create <string>())
            .With(m => m.Company, hasCompanyCommand ? companyCommand ?? CreateCompanyCommandMock().Object : null)
            .With(m => m.ContactGroupIdentifier, contactGroupIdentifier ?? _fixture.Create <int>())
            .With(m => m.Acquaintance, acquaintance ?? _fixture.Create <string>())
            .With(m => m.PersonalHomePage, personalHomePage ?? _fixture.Create <string>())
            .With(m => m.LendingLimit, lendingLimit ?? _fixture.Create <int>())
            .With(m => m.PaymentTermIdentifier, paymentTermIdentifier ?? _fixture.Create <int>())
            .Create());
 }