예제 #1
0
 private static PublicServiceLabelListItem CreateListItemFromEvent(LabelWasAssigned labelWasAssigned) =>
 new PublicServiceLabelListItem
 {
     LabelType       = labelWasAssigned.LabelType,
     LabelValue      = labelWasAssigned.LabelValue,
     PublicServiceId = labelWasAssigned.PublicServiceId
 };
예제 #2
0
        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);
        }