//using System;
//using System.Data;
//using Microsoft.VisualStudio.TestTools.UnitTesting;
//using ZeusServerEdgeJS;
//using System.Threading.Tasks;
//using Moq;
//using ZeusServerNode.Node;

//namespace ZeusServerEdgeJSTest
//{
//    [TestClass]
//    public class TestZoneService
//    {
//        private ZoneService zoneService = ZoneService.instance();

//        private int playerEnteredTime = 1;
//        private int playerSendedTime = 1;
//        private int[] playerSendedArray = { 1, 1, 2 };
 
//        public TestZoneService()
//        {
//              //-- Creating a fake ICustomerRepository object
     
//            zoneService.setTest(true);
//            zoneService.start("E:/work/zeus/game-server/csharp");

//        }
//        [TestMethod]
//        public void TestPlayerEnter()
//        {
//            zoneService.setTest(true);
//            int testMapId = 999999;
//            long testInstanceId = 10000;
//            var mockUtils = new Mock<Utils>();
//            mockUtils
//                .Setup(m => m.GuidToLongID())
//                .Returns(testInstanceId);
//            Utils.instance(mockUtils.Object);

          
//            //注册事件
//            zoneService.registerEvent(EventType.playerEntered.ToString(), onPlayerEntered);
//            zoneService.registerEvent(EventType.playerSended.ToString(), onPlayerSended);

//            //生成进入数据
//            ZeusPlayerEnter enter = new ZeusPlayerEnter();      
//            enter.Pos = new CommonAI.RTS.Vector2(0, 0);
//            enter.UnitData = new CommonAI.ZoneServer.CreateUnitInfoR2B();
//            enter.UnitData.Force = 0;
//            enter.UnitData.StartFlag = null;
//            enter.UnitData.UnitTemplateID = 900;
//            enter.UnitData.UnitPropData = new ZeusCommon.Plugin.ZeusUnitProperties();  


//            //玩家1进入副本
//            ZeusPlayer player1 = new ZeusPlayer("1");
//            long instanceId1 = zoneService.playerEnter(testMapId, player1, enter);
//            Assert.AreEqual(testInstanceId, instanceId1);

//            //玩家2进入副本
//            ZeusPlayer player2 = new ZeusPlayer("2");
//            long instanceId2 = zoneService.playerEnter(testMapId, player2, enter);
//            Assert.AreEqual(instanceId1, instanceId2);

//            //玩家3进入副本
//            ZeusPlayer player3 = new ZeusPlayer("3");
//            zoneService.playerEnter(instanceId1, player3, enter);
      

           
//        }


//        private Task<object> onPlayerEntered(dynamic input)
//        {
           
//            var playerId = (string)input.playerId;
//            var instanceId = (long)input.nodeInstanceId;
//            Assert.AreEqual(playerEnteredTime.ToString(), playerId);       
//            Assert.AreEqual(10000, instanceId);
//            playerEnteredTime++;
//            return null;
//        }

//        private Task<object> onPlayerSended(dynamic input)
//        {
//            var playerId = (string)input.playerId;
//            var message = (object)input.message;
       
//            Assert.AreEqual(playerSendedArray[playerSendedTime-1].ToString(), playerId);

//            System.Console.WriteLine("playerSendedTime = " + playerSendedTime);
        

//            return null;
//        }
//    }
//}