public void Test() { var eventModel = EventManagementModelBuilder.Build(); var updatedTitle = eventModel.With( eventTitle: new EventTitle("special value") ); Assert.Equal(new EventTitle("special value"), updatedTitle.Title); }
public async Task PostAddsANewEventManagementModelWithANewId() { var repo = new InMemoryEventManagementRepo(); await repo.Update( EventManagementModelBuilder.Build().With( id: new Guid("8b014e41-d74f-4031-a3d7-ae264144b989"), eventTitle: new EventTitle("Brad's Amazing Event") )); var factory = new WebApplicationFactory <Startup>() .WithWebHostBuilder(builder => builder.ConfigureTestServices(services => { services.AddSingleton <IEventManagementRepo>(repo); })); var client = factory.CreateClient(); var model = EventManagementModelBuilder.Build().With( id: new Guid("8b014e41-d74f-4031-a3d7-ae264144b989"), eventTitle: new EventTitle("Carlie's awesome party") ); var requestBody = JsonConvert.SerializeObject(model); var result = await client.PostAsync("/v1/events", new StringContent(requestBody, Encoding.UTF8, "application/json")); // get a status code 200 Assert.Equal(HttpStatusCode.OK, result.StatusCode); // view that it is the last thing in the EventManagementDto var getResult = await client.GetAsync("/v1/events"); var body = await getResult.Content.ReadAsStringAsync(); var response = JsonConvert.DeserializeObject <List <EventManagementDto> >(body); Assert.Equal(2, response.Count); Assert.Equal(2, response.Select(x => x.Id).Distinct().Count()); Assert.Equal("Carlie's awesome party", response[1].Title); }