public void double_names_are_not_added() { NameSelection selection = Selection.Setup() .WithEvents(Selection.New()) .Handle(new AddNames { Id = Selection.Id, Names = new[] { "Beatrix", "Indi" }, }) .AssertIsValid( ValidationMessage.Warn("Some names occurred multiple times: Indi.")); Assert.AreEqual(11, selection.Names.Count); }
private Result <NameSelection> ShouldBeDistinct(string[] names) { var doubles = names.Where(name => Names.Contains(name)).ToArray(); if (doubles.Length == names.Length) { return(Result.WithMessages <NameSelection>(ValidationMessage.Error(Message.NoNewNames))); } return(doubles.Any() ? Result.For(this, ValidationMessage.Warn(string.Format( CultureInfo.CurrentCulture, Message.DoubleNames, string.Join(", ", doubles.OrderBy(n => n))))) : Result.For(this)); }