public void GivenTheWrongChargeStationIsProvided() { _scenarioContext["createdChargeStation"] = new ChargeStationResource() { Id = new Guid() }; }
public async Task ThenTheConnectorShouldNotExistAnymore(int connectorId) { GroupResource group = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStation = await _chargeStationDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); await _connectorDriver.ShouldNotExistAnymore(group.Id, chargeStation.Id, connectorId); }
public async Task ShouldCreateChargeStationSuccessfully(HttpResponseMessage response) { response.StatusCode.Should().Be(201); ChargeStationResource chargeStationResponse = await this.ParseFromResponse <ChargeStationResource>(response); chargeStationResponse.Id.Should().NotBeEmpty(); chargeStationResponse.Name.Should().NotBeEmpty(); }
public async Task ShouldUpdateChargeStationSuccessfully(HttpResponseMessage response, string expectedName) { response.StatusCode.Should().Be(200); ChargeStationResource chargeStationResponse = await this.ParseFromResponse <ChargeStationResource>(response); if (!string.IsNullOrEmpty(expectedName)) { chargeStationResponse.Name.Should().Be(expectedName); } }
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 WhenTheConnectorIsDeleted(int connectorId) { GroupResource groupResource = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStationResource = await _chargeStationDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); chargeStationResource.Id.Should().NotBeEmpty(); chargeStationResource.Name.Should().NotBeEmpty(); _scenarioContext["deletedConnectorId"] = connectorId; _scenarioContext["deletedConnectorResponse"] = await _connectorDriver.DeleteConnector(groupResource.Id, chargeStationResource.Id, connectorId); }
public async Task WhenAConnectorIsUpdated(int connectorId) { _scenarioContext.Should().ContainKey("createdChargeStationResponse"); _scenarioContext.Should().ContainKey("createdGroupResponse"); _scenarioContext["createdGroupResponse"].Should().NotBeNull(); _scenarioContext["createdChargeStationResponse"].Should().NotBeNull(); GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStationResource = await _connectorDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); _scenarioContext["updatedConnector"] = await _connectorDriver.UpdateConnector(groupResponse.Id, chargeStationResource.Id, connectorId, ((SaveConnectorResource)_scenarioContext["createConnector"]).MaxCurrentAmp.Value); }
public async Task ThenShouldUpdateSuccessfullyAllConnectorsToMaxCurrentForAllChargeStations(float maxCurrent) { List <HttpResponseMessage> responses = (List <HttpResponseMessage>)_scenarioContext["chargeStationListResponses"]; GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); foreach (var response in responses) { ChargeStationResource chargeStationResource = await _chargeStationDriver.ParseFromResponse <ChargeStationResource>(response); var connectorResponse = await _connectorDriver.UpdateConnector(groupResponse.Id, chargeStationResource.Id, 1, maxCurrent); connectorResponse.StatusCode.Should().Be(200); } }
public async Task WhenTheConnectorIsCreatedWithRequiredParametersMissing() { _scenarioContext.Should().ContainKey("createdChargeStationResponse"); _scenarioContext.Should().ContainKey("createdGroupResponse"); _scenarioContext["createdGroupResponse"].Should().NotBeNull(); _scenarioContext["createdChargeStationResponse"].Should().NotBeNull(); GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStationResource = await _groupDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); SaveConnectorResource createConnector = ((SaveConnectorResource)_scenarioContext["createConnector"]); _scenarioContext["createdConnector"] = await _connectorDriver.CreateConnectorWithEmptyPayload(groupResponse.Id, chargeStationResource.Id); }
public async Task WhenTheConnectorIsCreated() { _scenarioContext.Should().ContainKey("createdChargeStationResponse"); _scenarioContext.Should().ContainKey("createdGroupResponse"); _scenarioContext["createdGroupResponse"].Should().NotBeNull(); _scenarioContext["createdChargeStationResponse"].Should().NotBeNull(); GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); ChargeStationResource chargeStationResource = _scenarioContext.ContainsKey("createdChargeStation") ? (ChargeStationResource)_scenarioContext["createdChargeStation"] : await _connectorDriver.ParseFromResponse <ChargeStationResource>((HttpResponseMessage)_scenarioContext["createdChargeStationResponse"]); SaveConnectorResource createConnector = ((SaveConnectorResource)_scenarioContext["createConnector"]); _scenarioContext["createdConnector"] = await _connectorDriver.CreateConnector(groupResponse.Id, chargeStationResource.Id, createConnector.MaxCurrentAmp.Value); }
public async Task ThenShouldCreateSuccessfullyConnectorsForAllChargeStations(int connectorsCount, float maxCurrent) { List <HttpResponseMessage> responses = (List <HttpResponseMessage>)_scenarioContext["chargeStationListResponses"]; GroupResource groupResponse = await _groupDriver.ParseFromResponse <GroupResource>((HttpResponseMessage)_scenarioContext["createdGroupResponse"]); foreach (var response in responses) { ChargeStationResource chargeStationResource = await _chargeStationDriver.ParseFromResponse <ChargeStationResource>(response); for (int i = 0; i < connectorsCount; i++) { var connectorResponse = await _connectorDriver.CreateConnector(groupResponse.Id, chargeStationResource.Id, maxCurrent); connectorResponse.StatusCode.Should().Be(201); } } }
public async Task <IActionResult> Patch(Guid id, [FromBody] PatchChargeStationResource value) { ChargeStation chargeStation = await _context.ChargeStation.FirstOrDefaultAsync(c => c.Id == id); if (chargeStation == null) { return(StatusCode(404)); } if (!String.IsNullOrEmpty(value.Name)) { chargeStation.Name = value.Name; } await _context.SaveChangesAsync(); ChargeStationResource chargeStationUpdated = _mapper.Map <ChargeStationResource>(chargeStation); return(Ok(chargeStationUpdated)); }
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 ThenRemoveSuggestionResponseShouldHaveThisSpecificResults(Table table) { _scenarioContext.ContainsKey("createdConnector"); _scenarioContext.ContainsKey("chargeStationListResponses"); HttpResponseMessage response = (HttpResponseMessage)_scenarioContext["createdConnector"]; List <HttpResponseMessage> createdChargeStations = (List <HttpResponseMessage>)_scenarioContext["chargeStationListResponses"]; CapacityExceededProblemDetail capacityExceeded = await _suggestionDriver.ParseFromResponse <CapacityExceededProblemDetail>(response); foreach (var row in table.Rows) { int sugestionListPosition, chargeStationId, connectorId; int.TryParse(row["suggestionListPosition"], out sugestionListPosition).Should().BeTrue(); int.TryParse(row["chargeStationId"], out chargeStationId).Should().BeTrue(); int.TryParse(row["connectorId"], out connectorId).Should().BeTrue(); capacityExceeded.RemoveSuggestions.Count.Should().BeGreaterOrEqualTo(sugestionListPosition); var suggestionList = capacityExceeded.RemoveSuggestions[sugestionListPosition - 1]; bool foundConnector = false; foreach (var suggestion in suggestionList) { ChargeStationResource chargeStation = await _suggestionDriver.ParseFromResponse <ChargeStationResource>(createdChargeStations[chargeStationId - 1]); if (suggestion.ChargeStationId == chargeStation.Id && suggestion.ConnectorId == connectorId) { foundConnector = true; } } foundConnector.Should().BeTrue(); } }