public void When_DeleteConnector_Expect_ConnectorDeletion()
        {
            var errorMessage         = string.Empty;
            var createdGroup         = CreateGroup();
            var createdChargeStation = CreateChargeStation(createdGroup);

            var createConnectorCommand = new CreateOrUpdateConnectorCommand()
            {
                Connector = new Connector()
                {
                    MaxCurrent = 50, ChargeStationId = createdChargeStation.Id
                }
            };

            var actionResult = _connectorController.Create(createConnectorCommand);

            var createdConnector = ActionResultParser.ParseCreatedResult <Connector>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            actionResult = _connectorController.Delete(createdConnector.Id);

            var deletedConnector = ActionResultParser.ParseObjectResult <Connector>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            Assert.AreEqual(createdConnector.Id, deletedConnector.Id);

            DeleteGroup(createdGroup);
        }
        public void When_DeleteChargeStation_Expect_ChargeStationDeletion()
        {
            var errorMessage = string.Empty;

            var createdGroup = CreateGroup();

            var guid = Guid.NewGuid().ToString();
            var newChargeStationCommand = new CreateChargeStationCommand()
            {
                ChargeStation = new ChargeStation()
                {
                    Name = guid, GroupId = createdGroup.Id
                }
            };

            var actionResult = _chargeStationController.Create(newChargeStationCommand);

            var createdChargeStation = ActionResultParser.ParseCreatedResult <ChargeStation>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            actionResult = _chargeStationController.Delete(createdChargeStation.Id);

            var deletedChargeStation = ActionResultParser.ParseObjectResult <ChargeStation>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            Assert.AreEqual(createdChargeStation.Id, deletedChargeStation.Id);

            DeleteGroup(createdGroup);
        }
        public void When_DeleteGroup_Expect_GroupDeletion()
        {
            var errorMessage = string.Empty;
            var guid         = Guid.NewGuid().ToString();
            var newGroup     = new CreateGroupCommand()
            {
                Group = new Group()
                {
                    Name = guid, CurrentCapacity = 100M
                }
            };
            var actionResult = _groupController.Create(newGroup);

            var createdGroup = ActionResultParser.ParseCreatedResult <Group>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            if (createdGroup.Id == 0)
            {
                Assert.Fail();
            }

            actionResult = _groupController.Delete(createdGroup.Id);

            var deletedGroup = ActionResultParser.ParseObjectResult <Group>(actionResult, out errorMessage);

            CheckErrorMessage(errorMessage);

            Assert.AreEqual(createdGroup.Id, deletedGroup.Id);
        }
        public void When_CreateConnectorThatExceedsGroupCapacity_Expect_Error()
        {
            var errorMessage         = string.Empty;
            var createdGroup         = CreateGroup();
            var createdChargeStation = CreateChargeStation(createdGroup);

            var createConnectorCommand = new CreateOrUpdateConnectorCommand()
            {
                Connector = new Connector()
                {
                    MaxCurrent = 101, ChargeStationId = createdChargeStation.Id
                }
            };

            var actionResult = _connectorController.Create(createConnectorCommand);

            DeleteGroup(createdGroup);

            _ = ActionResultParser.ParseObjectResult <Connector>(actionResult, out errorMessage);

            Assert.IsTrue(!string.IsNullOrEmpty(errorMessage));
        }
        public void When_CreateChargeStationWithoutGroup_Expect_ErrorMessage()
        {
            var errorMessage = string.Empty;

            var guid = Guid.NewGuid().ToString();
            var newChargeStationCommand = new CreateChargeStationCommand()
            {
                ChargeStation = new ChargeStation()
                {
                    Name = guid
                }
            };

            var actionResult = _chargeStationController.Create(newChargeStationCommand);

            _ = ActionResultParser.ParseObjectResult <ChargeStation>(actionResult, out errorMessage);

            if (errorMessage.Contains("Parent Group not found"))
            {
                Assert.Pass();
            }

            Assert.Fail();
        }