public void Create()
        {
            ApplicationDbContext context    = new ApplicationDbContext();
            IUnitOfWork          unitOfWork = new UnitOfWork(context);
            var controller = new PurchaseOrderController(unitOfWork);
            var result     = controller.Create() as ViewResult;

            Assert.AreEqual(expected: "Create", actual: result.ViewName);
        }
        public async Task HWA07_SetHardwareAssetPurchaseOrderCommitTest()
        {
            // Arrange
            Guid          testId = Guid.NewGuid();
            PurchaseOrder po     = await PurchaseOrderController.Create(_authToken, testId.ToString(), testId.ToString(), testId.ToString(), DateTime.Now);

            _objectsToCleanup.Add(po);
            _asset.PurchaseOrder = po;

            // Act
            await _asset.Commit(_authToken);

            // Assert
            Assert.AreEqual(po, _asset.PurchaseOrder, "HardwareAsset.PurchaseOrder does not match the test data");
        }
        public async Task PO01_CreatePurchaseOrderTest()
        {
            // Arrange
            Guid   id     = Guid.NewGuid();
            string poName = "TestPurchaseOrder" + id.ToString();

            // Act
            _purchaseOrder = await PurchaseOrderController.Create(_authToken, poName, "Test PurchaseOrder", poName, DateTime.Today);

            _objectsToCleanup.Add(_purchaseOrder);

            // Assert
            Assert.IsNotNull(_purchaseOrder, "Failed to create new PurchaseOrder");
            Assert.IsTrue(_purchaseOrder.IsActive, "PurchaseOrder.IsActive evaluated to false");
        }
        public async Task PO06_SetPurchaseOrderParentCommitTest()
        {
            // Arrange
            Guid          id     = Guid.NewGuid();
            PurchaseOrder parent = await PurchaseOrderController.Create(_authToken, "TestParentPO" + id.ToString(), "Test ParentPO", "TestParentPO" + id.ToString(), DateTime.Now);

            _objectsToCleanup.Add(parent);
            _purchaseOrder.Parent = parent;

            // Act
            await _purchaseOrder.Commit(_authToken);

            // Assert
            Assert.AreEqual(parent, _purchaseOrder.Parent, "PuchaseOrder.Parent does not match the test data");
        }
        public async Task PO08_PurchaseOrderRelatedObjectCommitTest()
        {
            // Arrange
            Guid id = Guid.NewGuid();

            PurchaseOrder child1 = await PurchaseOrderController.Create(_authToken, "TestChildPO1" + id.ToString(), "Test ChildPO1", "TestChildPO1" + id.ToString(), DateTime.Now);

            PurchaseOrder child2 = await PurchaseOrderController.Create(_authToken, "TestChildPO2" + id.ToString(), "Test ChildPO2", "TestChildPO2" + id.ToString(), DateTime.Now);

            _objectsToCleanup.Add(child1);
            _objectsToCleanup.Add(child2);

            _purchaseOrder.Children.Add(child1);
            _purchaseOrder.Children.Add(child2);

            // Act
            await _purchaseOrder.Commit(_authToken);

            // Assert
            Assert.AreEqual(2, _purchaseOrder.Children.Count, "Expected 2 PurchaseOrder.Children, got " + _purchaseOrder.Children.Count);
            Assert.IsTrue(_purchaseOrder.Children.Contains(child1), "PurchaseOrder.Children does not contain the first test child");
            Assert.IsTrue(_purchaseOrder.Children.Contains(child2), "PurchaseOrder.Children does not contain the second test child");
        }