1 //
2 // Copyright (c) ZeroC, Inc. All rights reserved.
3 //
4 
5 using System;
6 
7 public class PluginOneFailFactory : Ice.PluginFactory
8 {
create(Ice.Communicator communicator, string name, string[] args)9     public Ice.Plugin create(Ice.Communicator communicator, string name, string[] args)
10     {
11         return new PluginOneFail(communicator);
12     }
13 
14     internal class PluginOneFail : BasePluginFail
15     {
PluginOneFail(Ice.Communicator communicator)16         public PluginOneFail(Ice.Communicator communicator) : base(communicator)
17         {
18         }
19 
initialize()20         public override void initialize()
21         {
22             _two = (BasePluginFail)_communicator.getPluginManager().getPlugin("PluginTwoFail");
23             test(!_two.isInitialized());
24             _three = (BasePluginFail)_communicator.getPluginManager().getPlugin("PluginThreeFail");
25             test(!_three.isInitialized());
26             _initialized = true;
27         }
28 
destroy()29         public override void destroy()
30         {
31             test(_two.isDestroyed());
32             //
33             // Not destroyed because initialize fails.
34             //
35             test(!_three.isDestroyed());
36             _destroyed = true;
37         }
38 
~PluginOneFail()39         ~PluginOneFail()
40         {
41             if(!_initialized)
42             {
43                 Console.WriteLine("PluginOneFail not initialized");
44             }
45             if(!_destroyed)
46             {
47                 Console.WriteLine("PluginOneFail not destroyed");
48             }
49         }
50     }
51 }
52