Exemple #1
0
        public void ResolvesChildren()
        {
            var testObject = new TestObject() { Id = 1, Children = new List<TestObject>() };
            var child = new TestObject();

            var mChildState = new Mock<IObjectState>(MockBehavior.Strict);
            var builder = new ObjectBuilder<TestObject>(testObject);
            var t1 = builder
                .Dependent(mChildState.Object)
                .Build(state => new ObjectBuilder<TestObject>(child));

            var t2 = t1.Resolve(
                    (resolver, target, dependent) => target.Add(dependent)
                );

            Assert.That(t1, Is.EqualTo(t2));
            Assert.That(builder.DependentObjects.First(), Is.EqualTo(t2));

            var context = (IBuilderContext) t2;
            var resolved = context.Build(null);
            Assert.That(resolved, Is.EqualTo(child));

            var r = builder.Materialise();
            Assert.That(r, Is.EqualTo(testObject));
            Assert.That(r.Children, Is.Not.Null);
            Assert.That(r.Children.First(), Is.EqualTo(child));
        }
Exemple #2
0
            public static ObjectBuilder<Settlement> Build(SettlementState state)
            {
                var settlement = new Settlement
                {
                    Id = state.ObjectId,
                    Name = state.Name,
                    Timer = state.TimeToSettlement,
                };

                var builder = new ObjectBuilder<Settlement>(settlement);
                builder
                    .Dependent(state.Item)
                    .Build(item => Item.Builder.Build(item))
                    .Resolve((resolver, target, item) => item.Location = resolver.Get<ILocation>(state.Location))
                    .Resolve((resolver, target, item) => item.Owner = resolver.Get<Corporation>(state.Owner))
                    .Resolve((resolver, target, item) => target._item = item);

                builder
                    .Resolve((resolver, target) => SpendByOwner(resolver, target, state.SpendByOwner));

                return builder;
            }
Exemple #3
0
            public static ObjectBuilder<Ship> Build(ILocation location, ShipState state)
            {
                var ship = new Ship
                {
                    Id = state.ObjectId,
                    Name = state.Name,
                    Heading = state.Heading,
                    Position = new Position(location, state.LocalCoordinates),
                    Statistics = new ShipStatistics(state.Statistics.Select(Build)),
                };

                var builder = new ObjectBuilder<Ship>(ship)
                    .Resolve((resolver, target) => BuildHardPoints(resolver, ship, state.HardPoints))
                    .Resolve((resolver, target) => target.ShipInfo = resolver.Get<ShipInfo>(ItemType.Ships.ToObjectReference(state.Code)));

                builder
                    .Dependent(state.Pilot)
                    .Build(Agent.Builder.Build)
                    .Resolve((resolver, target, dependentObject) => target.Pilot = dependentObject);

                return builder;
            }