public void PackageUsingStatePatternExample()
        {
            // given
            var collectedMessages = new List <string>();

            void MessageCollector(string msg)
            {
                collectedMessages.Add(msg);
            }

            var package = new PackageUsingStatePattern(MessageCollector);

            // when
            package.Operation(); // should send state 1 message
            package.Operation(); // should send state 2 message
            package.Operation(); // should send state 1 message again

            // then
            Check.That(collectedMessages).ContainsExactly("Handling state 1", "Handling state 2", "Handling state 1");
        }
Пример #2
0
 protected PackageState(PackageUsingStatePattern package)
 {
     _package = package;
 }
Пример #3
0
 protected static PackageState State2(PackageUsingStatePattern package)
 {
     return(new PackageState2(package));
 }
Пример #4
0
 public static PackageState State1(PackageUsingStatePattern package)
 {
     return(new PackageState1(package));
 }
Пример #5
0
 public PackageState2(PackageUsingStatePattern package) : base(package)
 {
 }