private static PublicServiceLabelListItem CreateListItemFromEvent(LabelWasAssigned labelWasAssigned) => new PublicServiceLabelListItem { LabelType = labelWasAssigned.LabelType, LabelValue = labelWasAssigned.LabelValue, PublicServiceId = labelWasAssigned.PublicServiceId };
public Task WhenLabelWasAssignedTwice() { var random = new Random(); var data = _fixture.CreateMany <LabelWasAssigned>(random.Next(1, 100)) .Select(labelWasAssigned => { var expected = CreateListItemFromEvent(labelWasAssigned); return(new { @event = labelWasAssigned, expected }); }).ToList(); var labelXAssigned = _fixture.Create <LabelWasAssigned>(); var labelXAssignedAgain = new LabelWasAssigned( new PublicServiceId(labelXAssigned.PublicServiceId), LabelType.Parse(labelXAssigned.LabelType), _fixture.Create <LabelValue>()); var events = data .Select(d => d.@event) .Append(labelXAssigned) .Append(labelXAssignedAgain); var expectedResults = data .Select(d => d.expected) .Append(CreateListItemFromEvent(labelXAssignedAgain)); return(new PublicServiceLabelListProjections() .Scenario() .Given(events) .Expect(expectedResults .Cast <object>() .ToArray())); }
private void When(LabelWasAssigned @event) { var labelType = LabelType.Parse(@event.LabelType); _labels[labelType] = new LabelValue(@event.LabelValue); }