コード例 #1
0
        public void Update_GetAndUpdate_CallsConnectorWithUpdate()
        {
            var salesInvoiceId = 1234;
            var existing       = new SalesInvoiceGet()
            {
                id = salesInvoiceId,
            };
            var data = new Contract.Model.SalesInvoice()
            {
                Id = existing.id
            };
            var existingMapped = new SalesInvoicePost();
            var saveResult     = new SalesInvoiceGet();
            var mappedResult   = new Contract.Model.SalesInvoice()
            {
                ContactId = 1234
            };

            _defaultConnector.Setup(c => c.GetById(salesInvoiceId)).Returns(existing);
            _mapper.Setup(c => c.MapToApi(data, existing)).Returns(existingMapped);
            _defaultConnector.Setup(c => c.Update(salesInvoiceId, It.Is <SalesInvoiceWrapper>(v => v.sales_invoice == existingMapped))).Returns(saveResult);
            _mapper.Setup(c => c.MapToContract(saveResult)).Returns(mappedResult);

            var result = _invoiceService.Update(salesInvoiceId, data);

            result.Should().BeEquivalentTo(mappedResult);
            _defaultConnector.Verify(c => c.Update(salesInvoiceId, It.Is <SalesInvoiceWrapper>(v => v.sales_invoice == existingMapped)), Times.Once);
        }
コード例 #2
0
        private void SetCustomFields(Contract.Model.RecurringSalesInvoice current, SalesInvoicePost returnValue)
        {
            var jobject = new JsonObject();

            if (current.CustomFields != null)
            {
                foreach (var customField in current.CustomFields)
                {
                    jobject[current.CustomFields.IndexOf(customField).ToString()] = _customFieldMapper.MapToApi(customField, null);
                }
            }
            returnValue.custom_fields_attributes = jobject;
        }
コード例 #3
0
        public void MapToApi_MapObject_Correctly()
        {
            var current      = new SalesInvoiceGet();
            var salesInvoice = new Contract.Model.SalesInvoice()
            {
                State                  = Contract.Model.SalesInvoiceStatus.Draft,
                Id                     = 1,
                DocumentStyleId        = 12345,
                WorkflowId             = 12346,
                InvoiceId              = "ABC",
                PriceAreIncludedTax    = true,
                DueDate                = new DateTime(2016, 10, 20),
                InvoiceDate            = new DateTime(2016, 11, 20),
                ContactId              = 123,
                TotalPriceExcludingTax = 123,
                TotalPriceIncludingTax = 150,
                TotalTax               = 27,
            };

            var result = _mapper.MapToApi(salesInvoice, current);

            var expectedResult = new SalesInvoicePost()
            {
                state             = "draft",
                contact_id        = salesInvoice.ContactId,
                document_style_id = salesInvoice.DocumentStyleId,
                workflow_id       = salesInvoice.WorkflowId,
                invoice_id        = salesInvoice.InvoiceId,
                due_date          = "2016-10-20",
                invoice_date      = "2016-11-20",
                id = salesInvoice.Id,
                prices_are_incl_tax  = salesInvoice.PriceAreIncludedTax,
                total_price_excl_tax = salesInvoice.TotalPriceExcludingTax,
                total_price_incl_tax = salesInvoice.TotalPriceIncludingTax,
                total_tax            = salesInvoice.TotalTax
            };

            result.Should().BeEquivalentTo(expectedResult,
                                           opt => opt
                                           .Excluding(p => p.details_attributes)
                                           .Excluding(p => p.custom_fields_attributes));
        }
コード例 #4
0
        public void Create_MapsToApi_CallsConnectorWithWrapper()
        {
            var salesInvoice  = new Contract.Model.SalesInvoice();
            var update        = new SalesInvoicePost();
            var resultContact = new SalesInvoiceGet()
            {
                id = 1234
            };

            _mapper.Setup(c => c.MapToApi(salesInvoice, null)).Returns(update);
            _defaultConnector.Setup(c => c.Create(It.Is <SalesInvoiceWrapper>(v => v.sales_invoice == update))).Returns(resultContact);
            _mapper.Setup(c => c.MapToContract(resultContact)).Returns(new Contract.Model.SalesInvoice()
            {
                Id = resultContact.id
            });

            var result = _invoiceService.Create(salesInvoice);

            result.Id.Should().Be(resultContact.id);
            _defaultConnector.Verify(c => c.Create(It.Is <SalesInvoiceWrapper>(v => v.sales_invoice == update)), Times.Once);
        }
コード例 #5
0
 public SalesInvoiceWrapper(SalesInvoicePost salesInvoice)
 {
     this.sales_invoice = salesInvoice;
 }