예제 #1
0
        public void AddWithDuplicateName()
        {
            var factory = new CommandFactory();

            var name = new CommandId("name");
            Func<ICommand> activator = () => new Mock<ICommand>().Object;

            factory.Add(name, activator);
            Assert.Throws<DuplicateCommandException>(() => factory.Add(name, activator));
        }
예제 #2
0
        public void Add()
        {
            var factory = new CommandFactory();

            var name = new CommandId("name");
            Func<ICommand> activator = () => new Mock<ICommand>().Object;

            factory.Add(name, activator);
            Assert.IsTrue(factory.Contains(name));
        }
예제 #3
0
        public void InvokeWithoutContext()
        {
            var factory = new CommandFactory();
            var name = new CommandId("name");

            ICommandContext storedContext = null;
            var commandMock = new Mock<ICommand>();
            {
                commandMock.Setup(command => command.Invoke(It.IsAny<ICommandContext>()))
                    .Callback<ICommandContext>(context => { storedContext = context; });
            }

            factory.Add(name, () => commandMock.Object);
            factory.Invoke(name);
            Assert.IsNotNull(storedContext);
        }
예제 #4
0
        public void InvokeWithoutContextWithUnknownName()
        {
            var factory = new CommandFactory();

            Assert.Throws <UnknownCommandException>(() => factory.Invoke(new CommandId("name")));
        }
예제 #5
0
        public void RemoveWithUnknownName()
        {
            var factory = new CommandFactory();

            Assert.Throws <UnknownCommandException>(() => factory.Remove(new CommandId("name")));
        }
예제 #6
0
 public void InvokeWithoutContextWithUnknownName()
 {
     var factory = new CommandFactory();
     Assert.Throws<UnknownCommandException>(() => factory.Invoke(new CommandId("name")));
 }
예제 #7
0
 public void RemoveWithUnknownName()
 {
     var factory = new CommandFactory();
     Assert.Throws<UnknownCommandException>(() => factory.Remove(new CommandId("name")));
 }