public void Should_Get_Terrain_Behaviour_By_Id_Return_Expected_Value() { ITerrainNode[,] terrainArray = new ITerrainNode[Rows,Cols]; for (int i = 0; i < Rows; i++) { for (int j = 0; j < Cols; j++) { terrainArray[i,j] = MockRepository.GenerateMock<ITerrainNode>(); var terrainBehaviour = MockRepository.GenerateMock<ITerrainBehaviour>(); terrainBehaviour.Stub(x => x.RowIndex).Return(i); terrainBehaviour.Stub(x => x.ColsIndex).Return(j); terrainBehaviour.Stub(x => x.GetTerrainId()).Return(i*100 + j); terrainArray[i, j].Stub(x => x.Item).Return(terrainBehaviour); } } var nodeContainer = MockRepository.GenerateMock<ITerrainNodeContainer>(); nodeContainer.Stub(x => x.TerrainNodesArray).Return(terrainArray); _nodesFactory.Stub(x => x.CreateNodeContainer(Arg<ITerrainBehaviour[,]>.Is.Anything)).Return(nodeContainer); ITerrainService testedClass = new TerrainService(_nodesFactory, _searchPathStrategy); var terrains = new ITerrainBehaviour[1]; terrains[0] = MockRepository.GenerateMock<ITerrainBehaviour>(); testedClass.NetworkTerrainFinishGeneration(terrains, 1, 1); var terrain = testedClass.GetTerrainBehaviourById(5 * 100 + 7); Assert.AreEqual(terrain.RowIndex, 5); Assert.AreEqual(terrain.ColsIndex, 7); }