Ejemplo n.º 1
0
        public void TestDetermineIntersection()
        {
            // Set up intersection for corp foundation
            Tile        connector     = new Tile("1B");
            List <Tile> adjacentTiles = new List <Tile>();
            Tile        adjTile1      = new Tile("1A");
            Tile        adjTile2      = new Tile("2B");

            adjacentTiles.Add(adjTile1);
            adjacentTiles.Add(adjTile2);
            TileIntersectionFactory tileIntersectionFactory = new TileIntersectionFactory();

            Acquire.CorpFoundation corpFoundation = new Acquire.CorpFoundation(connector, adjacentTiles);
            // Call method - form corporation
            TileIntersection intersection = tileIntersectionFactory.determineIntersection(connector, adjacentTiles);
            Type             t            = intersection.GetType();

            // Is it a corporation foundation?
            Assert.AreEqual(t, corpFoundation.GetType());

            // Set up for expansion (single corporation)
            Corporation american = new Corporation(ECorporation.American);

            adjTile2.Corp = american;
            CorpExpansion corpExpansion = new CorpExpansion(connector, adjacentTiles);

            // Call method - expand corporation
            intersection = tileIntersectionFactory.determineIntersection(connector, adjacentTiles);
            // Is it an expansion
            Assert.AreEqual(intersection.GetType(), corpExpansion.GetType());

            // Set up for merger (multi-corporation)
            Corporation sackson = new Corporation(ECorporation.Sackson);

            adjTile1.Corp = sackson;
            Merger merger = new Merger(connector, adjacentTiles);

            // call method - merger
            intersection = tileIntersectionFactory.determineIntersection(connector, adjacentTiles);
            // is it a merger?
            Assert.AreEqual(intersection.GetType(), merger.GetType());
        }