public void can_serialize() { var widget = new ColorWidget("blue"); var instance = new ObjectInstance(widget); cache.Set(typeof(Rule), instance, widget); var formatter = new BinaryFormatter(); var stream = new MemoryStream(); formatter.Serialize(stream, cache); stream.Position = 0; var deserializedCache = (LifecycleObjectCache)formatter.Deserialize(stream); Assert.AreNotSame(cache, deserializedCache); var cachedWidget = deserializedCache.Get(typeof(Rule), instance, null) as ColorWidget; cachedWidget.ShouldNotBeNull(); cachedWidget.Color.ShouldEqual("blue"); }
public void inject_into_the_child_does_not_affect_the_parent_container() { var parent = new Container(x => x.For<IWidget>().Use<AWidget>()); var child = parent.GetNestedContainer(); var childWidget = new ColorWidget("blue"); child.Inject<IWidget>(childWidget); // do the check repeatedly child.GetInstance<IWidget>().ShouldBeTheSameAs(childWidget); child.GetInstance<IWidget>().ShouldBeTheSameAs(childWidget); child.GetInstance<IWidget>().ShouldBeTheSameAs(childWidget); // now, compare to the parent parent.GetInstance<IWidget>().ShouldNotBeTheSameAs(childWidget); }