public void Close_Competition_Returns_OK() { // Arrange var competition = new PostCompetition() { Answers = new[] { "Man Utd", "Man City", "Chelsea", "Arsenal" }, ClosingDate = DateTime.Now.AddMonths(-1), CompetitionKey = RandomGenerator.GetRandomString(10), CorrectAnswerKey = 1, Question = "Who won the 2012 Premier League?" }; Assert.AreEqual( HttpStatusCode.Created, Client.PostAsJsonAsync(Resources.Competitions, competition).Result.StatusCode, "POSTCompetition not OK."); // Act var response = Client.PutAsJsonAsync( string.Format("{0}/{1}", Resources.CloseCompetition, competition.CompetitionKey.ToLower()), new { }) .Result; // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "PUT CloseCompetition not OK."); }
public IHttpActionResult PutCompetition(int id, PostCompetition postCompetition) { using (var db = new AndroidCaseCompetitionEntities()) { var competition = db.Competitions.Find(id); competition.Name = postCompetition.Name; competition.DateTimeStart = postCompetition.DateTimeStart; competition.DateTimeEnd = postCompetition.DateTimeEnd; competition.SubjectId = postCompetition.SubjectId; File.Delete(Path.Combine(AppData, competition.UploadFileName)); competition.UploadFileName = $"{Guid.NewGuid()}.{postCompetition.UploadFileExtension}"; var bytes = Convert.FromBase64String(postCompetition.UploadFile); File.WriteAllBytes(Path.Combine(AppData, competition.UploadFileName), bytes); db.Competitions.Attach(competition); db.SaveChanges(); return(Ok()); } }
/// <summary> /// The post. /// </summary> /// <returns> /// The <see cref="GetCompetition"/>. /// </returns> private GetCompetition Post() { // Arrange var competition = new PostCompetition() { Answers = new[] { "A", "B", "C", "D" }, ClosingDate = DateTime.Now.AddMonths(1), CompetitionKey = RandomGenerator.GetRandomString(10), CorrectAnswerKey = 1, Question = "Test Question" }; // Act var response = Client.PostAsJsonAsync(Resources.Competitions, competition).Result; // Assert Assert.AreEqual(HttpStatusCode.Created, response.StatusCode, "POST competition not ok."); return(response.Content.ReadAsAsync <GetCompetition>().Result); }
public IHttpActionResult PostCompetition(PostCompetition postCompetition) { using (var db = new AndroidCaseCompetitionEntities()) { var competition = new Competition { Name = postCompetition.Name, DateTimeStart = postCompetition.DateTimeStart, DateTimeEnd = postCompetition.DateTimeEnd, UploadFileName = $"{Guid.NewGuid()}.{postCompetition.UploadFileExtension}", SubjectId = postCompetition.SubjectId }; var bytes = Convert.FromBase64String(postCompetition.UploadFile); File.WriteAllBytes(Path.Combine(AppData, competition.UploadFileName), bytes); db.Competitions.Add(competition); db.SaveChanges(); return(Ok()); } }
/// <summary> /// Create a new competition. /// </summary> /// <param name="item"> /// The item. /// </param> /// <returns> /// The <see cref="HttpResponseMessage"/>. /// </returns> /// <remarks> /// POST competition /// </remarks> public HttpResponseMessage Post(PostCompetition item) { var competition = new Competition() { Question = item.Question, ClosingDate = item.ClosingDate, CompetitionKey = item.CompetitionKey, CreatedBy = _userDataMapper.FindByAuthToken(RequestToken) }; SetAnswers(item.Answers, item.CorrectAnswerKey, competition); if (competition.IsValid) { _competitionDataMapper.Insert(competition); var createdItem = _mapper.Map <Competition, GetCompetition>(competition); return(CreatedHttpResponse(createdItem.Id, createdItem)); } return(Request.CreateResponse(HttpStatusCode.BadRequest, competition.ValidationErrors)); }
public void Enter_Competition_Returns_OK_Status() { // #1 Create Competition var competition = new PostCompetition() { Answers = new[] { "Man Utd", "Man City", "Chelsea", "Arsenal" }, ClosingDate = DateTime.Now.AddMonths(1), CompetitionKey = RandomGenerator.GetRandomString(10), CorrectAnswerKey = 1, Question = "Who won the 2012 Premier League?" }; Assert.AreEqual( HttpStatusCode.Created, Client.PostAsJsonAsync(Resources.Competitions, competition).Result.StatusCode, "POSTCompetition not OK."); // #2 Enter Competition var enterCompetition = new PostEnterCompetition() { CompetitionKey = competition.CompetitionKey, ContactType = "Sms", Answer = "A", Contact = "00000111222", Source = "Sms" }; Assert.AreEqual( HttpStatusCode.Created, Client.PostAsJsonAsync(Resources.EnterCompetition, enterCompetition).Result.StatusCode, "POST EnterCompetition not OK."); // #3 Close Competition var response = Client.PutAsJsonAsync(string.Format("{0}/{1}", Resources.CloseCompetition, competition.CompetitionKey.ToLower()), new { }).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode, "PUT CloseCompetition not OK."); }