コード例 #1
0
        public void SayHelloFactory_Should_Throw_Aggregate_Exception_When_Two_Duplicates()
        {
            var duplicateInstance1 = new English.EnglishHello();
            var duplicateInstance2 = new French.FrenchHello();

            var instances = new List <ISayHello> {
                new English.EnglishHello(), new EnglishInformal.EnglishInformalHello(), new French.FrenchHello(), duplicateInstance1, duplicateInstance2
            };

            var expectedMessage1 = DuplicateLanguageException.GetMessage(duplicateInstance1.Language,
                                                                         instances.IndexOf(duplicateInstance1), duplicateInstance1.GetType());

            var expectedMessage2 = DuplicateLanguageException.GetMessage(duplicateInstance2.Language,
                                                                         instances.IndexOf(duplicateInstance2), duplicateInstance2.GetType());

            AggregateException exceptionCaught = null;

            var expectedMessages = new[] { expectedMessage1, expectedMessage2 };

            try
            {
                var dummy = new SayHelloFactory(instances);
            }
            catch (Exception ex)
            {
                exceptionCaught = ex as AggregateException;
            }

            Assert.NotNull(exceptionCaught);

            exceptionCaught.InnerExceptions.Cast <DuplicateLanguageException>().Select(d => d.Message).Should().BeEquivalentTo(expectedMessages);
        }
コード例 #2
0
        public void SayHelloFactory_Should_Throw_Single_Exception_When_One_Duplicate()
        {
            var duplicateInstance = new English.EnglishHello();

            var instances = new List<ISayHello> {
                new English.EnglishHello(), new EnglishInformal.EnglishInformalHello(), new French.FrenchHello(), duplicateInstance
            };

            var expectedMessage = DuplicateLanguageException.GetMessage(duplicateInstance.Language,
                instances.IndexOf(duplicateInstance), duplicateInstance.GetType());

            new Action(() =>
            {
                var dummy = new SayHelloFactory(instances);
            }).Should().Throw<DuplicateLanguageException>().WithMessage(expectedMessage);
        }