public void GivenASpecificSetOfChargeStations(Table table) { List <SaveChargeStationResource> listChargeStations = new List <SaveChargeStationResource>(); foreach (var tableRow in table.Rows) { List <string> connectorIds = new List <string>(tableRow["connectors"].Split(',')); List <SaveConnectorResource> connectors = new List <SaveConnectorResource>(); foreach (var item in connectorIds) { float maxCurrent; float.TryParse(item, out maxCurrent).Should().BeTrue(); SaveConnectorResource saveConnector = new SaveConnectorResource() { MaxCurrentAmp = maxCurrent }; connectors.Add(saveConnector); } SaveChargeStationResource saveChargeStation = new SaveChargeStationResource() { Name = tableRow["name"], Connectors = connectors }; listChargeStations.Add(saveChargeStation); } _scenarioContext["chargeStationList"] = listChargeStations; }
public async Task WhenTheChargeStationIsCreated() { _scenarioContext["createdGroupResponse"].Should().NotBeNull(); GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); SaveChargeStationResource _createChargeStation = ((SaveChargeStationResource)_scenarioContext["createChargeStation"]); _scenarioContext["createdChargeStationResponse"] = await _chargeStationDriver.CreateChargeStation(groupResponse.Id, _createChargeStation.Name, _createChargeStation.Connectors); }
public async Task <HttpResponseMessage> CreateChargeStation(Guid groupId, string name, ICollection <SaveConnectorResource> connectors) { SaveChargeStationResource saveChargeStationResource = new SaveChargeStationResource() { Name = name, Connectors = connectors }; return(await Client.PostAsync(ChargeStationBaseUrl(groupId.ToString()), ConvertToJsonData <SaveChargeStationResource>(saveChargeStationResource))); }
public ChargeStationSteps(ScenarioContext scenarioContext, GroupDriver groupDriver, ChargeStationDriver chargeStationDriver, ConnectorDriver connectorDriver) { _scenarioContext = scenarioContext; _scenarioContext["createChargeStation"] = new SaveChargeStationResource(); _scenarioContext["chargeStationListResponses"] = new List <HttpResponseMessage>(); _groupDriver = groupDriver; _chargeStationDriver = chargeStationDriver; _connectorDriver = connectorDriver; }
public async Task WhenTheWrongChargeStationIsUpdated() { _scenarioContext["createdGroupResponse"].Should().NotBeNull(); _scenarioContext["createdChargeStationResponse"].Should().NotBeNull(); GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStation = await _chargeStationDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); SaveChargeStationResource _createChargeStation = ((SaveChargeStationResource)_scenarioContext["createChargeStation"]); _scenarioContext["updatedChargeStation"] = await _chargeStationDriver.UpdateChargeStation(groupResponse.Id, new Guid(), _createChargeStation.Name); }
public async Task <ActionResult <ChargeStationResource> > PostChargeStation(Guid groupId, SaveChargeStationResource saveChargeStation) { Group group = await _context.Group.Include(g => g.ChargeStations).ThenInclude(c => c.Connectors).FirstOrDefaultAsync(g => g.Id == groupId); if (group == null) { return(NotFound("Group not found")); } ////improve efficiency with a segmented n-ary tree if (group.HasExceededCapacity(saveChargeStation.Connectors.Sum(c => c.MaxCurrentAmp).Value)) { List <Connector> connectors = _context.Connector.Where(c => c.ChargeStation.GroupId == groupId).OrderBy(o => o.MaxCurrentAmp).ToList <Connector>(); float excdeededCapacity = group.GetExceededCapacity(); RemoveSuggestions removeSuggestions = new RemoveSuggestions(); if (connectors.Count == 0) { throw new CapacityExceededException(excdeededCapacity, removeSuggestions); } removeSuggestions.GenerateAllSuggestions(connectors, excdeededCapacity); throw new CapacityExceededException(excdeededCapacity, removeSuggestions); } ChargeStation chargeStation = _mapper.Map <ChargeStation>(saveChargeStation); group.AppendChargeStation(chargeStation); await _context.ChargeStation.AddAsync(chargeStation); await _context.SaveChangesAsync(); ChargeStationResource chargeStationResponse = _mapper.Map <ChargeStationResource>(chargeStation); return(CreatedAtAction(nameof(GetChargeStation), new { id = chargeStation.Id, groupId = chargeStation.GroupId }, chargeStationResponse)); }
public async Task ThenTheChargeStationShouldBeUpdatedSuccessfully() { SaveChargeStationResource _createChargeStation = ((SaveChargeStationResource)_scenarioContext["createChargeStation"]); await _chargeStationDriver.ShouldUpdateChargeStationSuccessfully((HttpResponseMessage)_scenarioContext["updatedChargeStation"], _createChargeStation.Name); }
public async Task WhenTheChargeStationIsCreatedForTheWrongGroup() { SaveChargeStationResource _createChargeStation = ((SaveChargeStationResource)_scenarioContext["createChargeStation"]); _scenarioContext["createdChargeStationResponse"] = await _chargeStationDriver.CreateChargeStation(new Guid(), _createChargeStation.Name, _createChargeStation.Connectors); }