public void ContractEntities_ConvertFrom_ContractConverted()
        {
            ContractEntity contract = TestData.ContractEntity;
            List <ContractProductEntity> contractProducts = new List <ContractProductEntity>
            {
                TestData.ContractProductEntity
            };
            List <ContractProductTransactionFeeEntity> contractProductsTransactionFees = new List <ContractProductTransactionFeeEntity>
            {
                TestData.ContractProductTransactionFeeEntity
            };

            ModelFactory modelFactory = new ModelFactory();

            ContractModel contractModel = modelFactory.ConvertFrom(contract, contractProducts, contractProductsTransactionFees);

            contractModel.ShouldNotBeNull();
            contractModel.EstateId.ShouldBe(contract.EstateId);
            contractModel.ContractId.ShouldBe(contract.ContractId);
            contractModel.OperatorId.ShouldBe(contract.OperatorId);
            contractModel.Description.ShouldBe(contract.Description);
            contractModel.Products.ShouldNotBeNull();
            contractModel.Products.ShouldHaveSingleItem();

            Product         contractProduct         = contractModel.Products.Single();
            ContractProduct expectedContractProduct = contractProducts.Single();

            contractProduct.ProductId.ShouldBe(expectedContractProduct.ProductId);
            contractProduct.DisplayText.ShouldBe(expectedContractProduct.DisplayText);
            contractProduct.Name.ShouldBe(expectedContractProduct.ProductName);
            contractProduct.Value.ShouldBe(expectedContractProduct.Value);
            contractProduct.TransactionFees.ShouldNotBeNull();
            contractProduct.TransactionFees.ShouldHaveSingleItem();

            ContractProductTransactionFeeModel contractProductTransactionFee         = contractProduct.TransactionFees.Single();
            ContractProductTransactionFee      expectedContractProductTransactionFee = contractProductsTransactionFees.Single();

            contractProductTransactionFee.TransactionFeeId.ShouldBe(expectedContractProductTransactionFee.TransactionFeeId);
            contractProductTransactionFee.Description.ShouldBe(expectedContractProductTransactionFee.Description);
            contractProductTransactionFee.Value.ShouldBe(expectedContractProductTransactionFee.Value);
            contractProductTransactionFee.CalculationType.ShouldBe((CalculationType)expectedContractProductTransactionFee.CalculationType);
        }
        public void ContractEntities_ContractProductTransactionFee_ConvertFrom_TransactionFeeConverted()
        {
            List <ContractProductTransactionFeeEntity> contractProductsTransactionFees = new List <ContractProductTransactionFeeEntity>
            {
                TestData.ContractProductTransactionFeeEntity
            };

            ModelFactory modelFactory = new ModelFactory();
            List <ContractProductTransactionFeeModel> transactionFeesModelList = modelFactory.ConvertFrom(contractProductsTransactionFees);

            transactionFeesModelList.ShouldNotBeNull();
            transactionFeesModelList.ShouldHaveSingleItem();

            ContractProductTransactionFeeModel contractProductTransactionFee         = transactionFeesModelList.Single();
            ContractProductTransactionFee      expectedContractProductTransactionFee = contractProductsTransactionFees.Single();

            contractProductTransactionFee.TransactionFeeId.ShouldBe(expectedContractProductTransactionFee.TransactionFeeId);
            contractProductTransactionFee.Description.ShouldBe(expectedContractProductTransactionFee.Description);
            contractProductTransactionFee.Value.ShouldBe(expectedContractProductTransactionFee.Value);
            contractProductTransactionFee.CalculationType.ShouldBe((CalculationType)expectedContractProductTransactionFee.CalculationType);
        }