public void Plugboard_PlugCableAddedToConfiguration_ConfigurationChanged(Key key1, Key key2)
        {
            var plugboard = new Plugboard();
            var plugCable = new PlugCable(key1, key2);

            plugboard.InsertPlugCable(plugCable);

            plugboard.PlugCableConfiguration.Should()
            .Contain(plugCable).And
            .HaveCount(1);
        }
        public void Plugboard_AddPlugCableKeyAlreadyConfigured_ExceptionRaised()
        {
            var plugCable1    = new PlugCable(Key.A, Key.C);
            var plugCable2    = new PlugCable(Key.A, Key.D);
            var configuration = new List <PlugCable> {
                plugCable1
            };
            var plugboard = new Plugboard(configuration);

            Action act = () => plugboard.InsertPlugCable(plugCable2);

            act.Should()
            .Throw <PlugboardConfigurationException>();
        }
        public void Plugboard_PlugCableRemovedFromConfiguration_ConfigurationChanged(Key key1, Key key2)
        {
            var plugCable     = new PlugCable(key1, key2);
            var configuration = new List <PlugCable>()
            {
                plugCable
            };
            var plugboard = new Plugboard(configuration);

            plugboard.RemovePlugCable(plugCable);

            plugboard.PlugCableConfiguration.Should()
            .NotContain(plugCable).And
            .HaveCount(0);
        }