public void EntityController_Update_WithNoFieldsAltered_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice { Description = "New Description" }; var line = new SalesInvoiceLine { Description = "Invoice Line" }; invoice.SalesInvoiceLines = new List <SalesInvoiceLine> { line }; var controller = (Controller <SalesInvoice>)controllerList.GetController <SalesInvoice>(); var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); var returnValue = controller.AddEntityToManagedEntitiesCollection(invoice); Assert.IsTrue(returnValue); entityController.Update(invoice); string data = controllerMock.Data; Assert.AreEqual("", data); }
public void EntityController_Update_WithNewLinkedEntity_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var apiConnectorMock = new ApiConnectorMock(); var controllerList = new ControllerList(apiConnectorMock, "https://start.exactonline.nl/api/v1/"); var controller = (Controller <SalesInvoice>)controllerList.GetController <SalesInvoice>(); var invoice = new SalesInvoice { Description = "New Description" }; var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); // Change State invoice.Description = "Description2"; var line = new SalesInvoiceLine { Description = "InvoiceLine2" }; invoice.SalesInvoiceLines = new List <SalesInvoiceLine> { line }; entityController.Update(invoice); string data = controllerMock.Data; Assert.IsTrue(data.Contains(@"""Description"":""Description2""")); Assert.IsTrue(data.Contains(@"""Description"":""InvoiceLine2""")); }
public void EntityController_Update_WithExistingLinkedEntity_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice { Description = "New Description" }; var line = new SalesInvoiceLine { Description = "InvoiceLine" }; invoice.SalesInvoiceLines = new List <SalesInvoiceLine> { line }; var controller = (Controller <SalesInvoice>)controllerList.GetController <SalesInvoice>(); var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); Assert.IsTrue(controller.AddEntityToManagedEntitiesCollection(invoice)); // Change State invoice.Description = "Description2"; line.Description = "InvoiceLine2"; entityController.Update(invoice); string data = controllerMock.Data; Assert.AreEqual(@"{""Description"":""Description2"",""SalesInvoiceLines"":[{""Description"":""InvoiceLine2""}]}", data); }
public void EntityController_Update_WithOnlyLinkedEntityFieldsAltered_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice { Description = "New Description" }; var line = new SalesInvoiceLine { Description = "InvoiceLine" }; invoice.SalesInvoiceLines = new List <SalesInvoiceLine> { line }; var controller = (Controller <SalesInvoice>)controllerList.GetController <SalesInvoice>(); var ec = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); Assert.IsTrue(controller.AddEntityToManagedEntitiesCollection(invoice)); // Change State line.Description = "InvoiceLine2"; ec.Update(invoice); string result = controllerMock.Data; const string expected = "{\"SalesInvoiceLines\":[{\"Description\":\"InvoiceLine2\"}]}"; Assert.AreEqual(expected, result); }
public void Controller_Test_ManagedEntities_WithLinkedEntities_Succeeds() { // Test if controller registrates linked entities IApiConnector conn = new ApiConnectorControllerMock(); var controllerList = new ControllerList(conn, string.Empty); var salesinvoicecontroller = (Controller <SalesInvoice>)controllerList.GetController <SalesInvoice>(); var invoicelines = (Controller <SalesInvoiceLine>)controllerList.GetController <SalesInvoiceLine>(); salesinvoicecontroller.GetManagerForEntity = controllerList.GetEntityManager; // Verify if sales invoice lines are registrated entities var invoice = salesinvoicecontroller.Get("")[0]; SalesInvoiceLine line = ((List <SalesInvoiceLine>)invoice.SalesInvoiceLines)[0]; Assert.IsTrue(invoicelines.IsManagedEntity(line), "SalesInvoiceLine isn't a managed entity"); }
public async Task EntityController_Update_WithNoFieldsAltered_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice {Description = "New Description"}; var line = new SalesInvoiceLine {Description = "Invoice Line"}; invoice.SalesInvoiceLines = new List<SalesInvoiceLine> { line }; var controller = (Controller<SalesInvoice>)controllerList.GetController<SalesInvoice>(); var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); var returnValue = controller.AddEntityToManagedEntitiesCollection(invoice); Assert.IsTrue(returnValue); await entityController.UpdateAsync(invoice); string data = controllerMock.Data; Assert.AreEqual("", data); }
public async Task EntityController_Update_WithNewLinkedEntity_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var apiConnectorMock = new ApiConnectorMock(); var controllerList = new ControllerList(apiConnectorMock, "https://start.exactonline.nl/api/v1/"); var controller = (Controller<SalesInvoice>)controllerList.GetController<SalesInvoice>(); var invoice = new SalesInvoice {Description = "New Description"}; var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); // Change State invoice.Description = "Description2"; var line = new SalesInvoiceLine {Description = "InvoiceLine2"}; invoice.SalesInvoiceLines = new List<SalesInvoiceLine> { line }; await entityController.UpdateAsync(invoice); string data = controllerMock.Data; Assert.IsTrue(data.Contains(@"""Description"":""Description2""")); Assert.IsTrue(data.Contains(@"""Description"":""InvoiceLine2""")); }
public async Task EntityController_Update_WithExistingLinkedEntity_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice {Description = "New Description"}; var line = new SalesInvoiceLine {Description = "InvoiceLine"}; invoice.SalesInvoiceLines = new List<SalesInvoiceLine> { line }; var controller = (Controller<SalesInvoice>)controllerList.GetController<SalesInvoice>(); var entityController = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); Assert.IsTrue(controller.AddEntityToManagedEntitiesCollection(invoice)); // Change State invoice.Description = "Description2"; line.Description = "InvoiceLine2"; await entityController.UpdateAsync(invoice); string data = controllerMock.Data; Assert.AreEqual(@"{""Description"":""Description2"",""SalesInvoiceLines"":[{""Description"":""InvoiceLine2""}]}", data); }
/// <summary> /// Returns instance of ExactOnlineQuery that can be used to manipulate data in Exact Online /// </summary> public ExactOnlineQuery <T> For <T>() where T : class { var controller = _controllers.GetController <T>(); return(new ExactOnlineQuery <T>(controller)); }
public async Task EntityController_Update_WithOnlyLinkedEntityFieldsAltered_Succeeds() { var controllerMock = new ApiConnectionEntityControllerMock(); var connector = new ApiConnectorMock(); var controllerList = new ControllerList(connector, "https://start.exactonline.nl/api/v1/"); var invoice = new SalesInvoice {Description = "New Description"}; var line = new SalesInvoiceLine {Description = "InvoiceLine"}; invoice.SalesInvoiceLines = new List<SalesInvoiceLine> { line }; var controller = (Controller<SalesInvoice>)controllerList.GetController<SalesInvoice>(); var ec = new EntityController(invoice, "ID", invoice.InvoiceID.ToString(), controllerMock, controller.GetEntityController); Assert.IsTrue(controller.AddEntityToManagedEntitiesCollection(invoice)); // Change State line.Description = "InvoiceLine2"; await ec.UpdateAsync(invoice); string result = controllerMock.Data; const string expected = "{\"SalesInvoiceLines\":[{\"Description\":\"InvoiceLine2\"}]}"; Assert.AreEqual(expected, result); }
public void Controller_Test_ManagedEntities_WithLinkedEntities_Succeeds() { // Test if controller registrates linked entities IApiConnector conn = new ApiConnectorControllerMock(); var controllerList = new ControllerList(conn, string.Empty); var salesinvoicecontroller = (Controller<SalesInvoice>)controllerList.GetController<SalesInvoice>(); var invoicelines = (Controller<SalesInvoiceLine>)controllerList.GetController<SalesInvoiceLine>(); salesinvoicecontroller.GetManagerForEntity = controllerList.GetEntityManager; // Verify if sales invoice lines are registrated entities var invoice = salesinvoicecontroller.Get("")[0]; SalesInvoiceLine line = ((List<SalesInvoiceLine>)invoice.SalesInvoiceLines)[0]; Assert.IsTrue(invoicelines.IsManagedEntity(line), "SalesInvoiceLine isn't a managed entity"); }