public async Task <IActionResult> CreateMatch(MatchCreateRequest request) { //Creazione modello richiesto da admin var model = new Match { Name = request.Name, MatchDateTimeStart = request.MatchDateTimeStart, MatchDateTimeEnd = request.MatchDateTimeEnd, AssociationId = request.AssociationId, PlaceId = request.PlaceId, OpenMatch = request.OpenMatch, UnifyClassifications = request.UnifyClassifications, Cost = request.Cost, PaymentDetails = request.PaymentDetails }; //Invocazione del service layer var validations = await BasicLayer.CreateMatch(model, PlatformUtils.GetIdentityUserId(User)); if (validations.Count > 0) { return(BadRequest(validations)); } var association = BasicLayer.GetAssociation(model.AssociationId); var place = BasicLayer.GetPlace(model.PlaceId); //Return contract return(Ok(ContractUtils.GenerateContract(model, association, place))); }
public async Task ShouldCreateMatchBeOkHavingProvidedData() { //Conteggio gli elementi prima della creazione var countBefore = Scenario.Matches.Count; var existingAssociation = Scenario.Associations.FirstOrDefault(); var existingPlace = Scenario.Places.FirstOrDefault(); //Composizione della request var request = new MatchCreateRequest { Name = RandomizationUtils.GenerateRandomString(50), AssociationId = existingAssociation.Id, PlaceId = existingPlace.Id, MatchDateTimeStart = DateTime.Now, MatchDateTimeEnd = DateTime.Now.AddDays(1), OpenMatch = true, UnifyClassifications = true }; //Invoke del metodo var response = await Controller.CreateMatch(request); //Conteggio gli elementi dopo la creazione var countAfter = Scenario.Matches.Count; //Parsing della risposta e assert var parsed = ParseExpectedOk <MatchContract>(response); Assert.IsTrue(parsed != null && countAfter == countBefore + 1 && parsed.Data.Name == request.Name && parsed.Data.Association.AssociationId == request.AssociationId && parsed.Data.Place.PlaceId == request.PlaceId && parsed.Data.MatchDateTimeStart == request.MatchDateTimeStart && parsed.Data.MatchDateTimeEnd == request.MatchDateTimeEnd && parsed.Data.OpenMatch == request.OpenMatch && parsed.Data.UnifyClassifications == request.UnifyClassifications ); }
public async Task ShouldCreateMatchBeBadRequestWithoutPermission() { UpdateIdentityUser(GetUserWithoutPermission(new List <Permissions> { Permissions.ManageMatches, Permissions.CreateMatches })); //Conteggio gli elementi prima della creazione var countBefore = Scenario.Matches.Count; var countBeforePermission = Scenario.Permissions.Count; var existingAssociation = Scenario.Associations.FirstOrDefault(); var existingPlace = Scenario.Places.FirstOrDefault(); //Composizione della request var request = new MatchCreateRequest { Name = RandomizationUtils.GenerateRandomString(50), AssociationId = existingAssociation.Id, PlaceId = existingPlace.Id, MatchDateTimeStart = DateTime.Now, MatchDateTimeEnd = DateTime.Now.AddDays(1), OpenMatch = true, UnifyClassifications = true }; //Invoke del metodo var response = await Controller.CreateMatch(request); //Conteggio gli elementi dopo la creazione var countAfter = Scenario.Matches.Count; var countAfterPermission = Scenario.Permissions.Count; //Parsing della risposta e assert var parsed = ParseExpectedBadRequest(response); Assert.IsTrue(parsed != null); Assert.AreEqual(countBefore, countAfter); // because is made by an admin the permissions should be the same Assert.AreEqual(countBeforePermission, countAfterPermission); }