示例#1
0
    private void InstantiateTank(GameObject tankPrefab, Transform[] spawnPoints)
    {
        GameObject newTank           = Instantiate(tankPrefab);
        GameObject newTankStatusBars = Instantiate(tankStatusBarsPrefab);

        TankController     tankController     = newTank.GetComponent <TankController>();
        ExternalController externalController = newTank.GetComponent <ExternalController>();
        UITankStatus       tankStatusBars     = newTankStatusBars.GetComponent <UITankStatus>();

        if (tankController != null && externalController != null && tankStatusBars != null)
        {
            int     randomIndex    = Random.Range(0, spawnPoints.Length);
            Vector3 randomPosition = spawnPoints[randomIndex].position + new Vector3(Random.Range(-2f, 2f), 0, Random.Range(-2f, 2f));
            newTank.transform.position = randomPosition;
            newTankStatusBars.transform.SetParent(uiCanvas);

            tankStatusBars.SetTank(tankController, externalController);

            // disable initially
            externalController.enabled = false;

            tanks.Add(newTank);
        }
        else
        {
            Debug.LogError("Components not found");
        }
    }
示例#2
0
        public void InvalidUserCredentialsReturnsUnAuthorized()
        {
            var userRepository    = new Mock <IRepository <InsideUser> >();
            var contactRepository = new Mock <IRepository <Contact> >();

            var userManager          = new Mock <IIdentityMembershipProvider>();
            var tokenGenerator       = new Mock <IAccessTokenProvider>();
            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var username = "******";
            var password = "******";

            userManager.Setup(mp => mp.ValidateAndReturnUser(username, password)).Returns(null as InsideUser);

            var controller = new ExternalController(
                userRepository.Object,
                contactRepository.Object,
                tokenGenerator.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);

            Assert.IsInstanceOfType(controller.GetAccessToken(username, password), typeof(UnauthorizedResult));
        }
    public void SetTank(TankController tankController, ExternalController externalController)
    {
        this.tankController     = tankController;
        this.externalController = externalController;

        hitPointSlider.maxValue    = tankController.hitPoint.Max;
        actionPointSlider.maxValue = tankController.actionPoint.Max;
    }
示例#4
0
        private ExternalController createController()
        {
            var controller = new ExternalController(_userManager, _signInManager, _interaction.Object, _events.Object, _windowsProvider.Object);
            var url        = new Mock <IUrlHelper>();

            url.Setup(u => u.IsLocalUrl("http://localhost")).Returns(false);
            url.Setup(u => u.IsLocalUrl("~/")).Returns(true);
            url.Setup(u => u.Action(It.IsAny <UrlActionContext>())).Returns("Callback");
            controller.Url = url.Object;
            return(controller);
        }
示例#5
0
    public void CheckVictory()
    {
        int players = 0;
        int enemies = 0;

        foreach (GameObject tank in tanks)
        {
            if (!tank.activeInHierarchy)
            {
                continue;
            }

            if (tank.tag == "Player")
            {
                players++;
            }
            else if (tank.tag == "Enemy")
            {
                enemies++;
            }
        }

        if (players > 0 && enemies > 0)
        {
            return;
        }

        // disable all ExternalController
        foreach (GameObject tank in tanks)
        {
            ExternalController externalController = tank.GetComponent <ExternalController>();
            if (externalController != null)
            {
                externalController.enabled = false;
            }
        }

        endTurnButton.enabled = false;
        gameResultText.gameObject.SetActive(true);

        if (players == 0)
        {
            gameResultText.text = "Enemy Win!";
        }
        else if (enemies == 0)
        {
            gameResultText.text = "Player Win!";
        }
    }
示例#6
0
        public void CanGetAccessToken()
        {
            var userRepository    = new LocalRepository <InsideUser>();
            var contactRepository = new Mock <IRepository <Contact> >();

            var userManager          = new Mock <IIdentityMembershipProvider>();
            var tokenGenerator       = new Mock <IAccessTokenProvider>();
            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var username = "******";
            var password = "******";

            var membershipProviderId = new Guid();
            var memebershipUser      = new Mock <MembershipUser>();

            memebershipUser.Setup(mu => mu.ProviderUserKey).Returns(membershipProviderId);
            var userInRepository = new InsideUser()
            {
                UserId   = 1,
                ClientId = 1,
                Id       = membershipProviderId.ToString()
            };

            userRepository.Add(userInRepository);
            userManager.Setup(mp => mp.ValidateAndReturnUser(username, password)).Returns(userInRepository);

            tokenGenerator.Setup(tg => tg.GetToken(It.IsAny <string>())).Returns(new Token()
            {
                AccessToken = "TokenGenerated"
            });

            var controller = new ExternalController(
                userRepository,
                contactRepository.Object,
                tokenGenerator.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);

            var result = controller.GetAccessToken(username, password) as OkNegotiatedContentResult <AcccessTokenForClient>;

            Assert.AreEqual("TokenGenerated", result.Content.AccessToken);
        }
示例#7
0
        public void CanCreate()
        {
            var userRepository       = new Mock <IRepository <InsideUser> >();
            var contactRepository    = new Mock <IRepository <Contact> >();
            var tokenProvider        = new Mock <IAccessTokenProvider>();
            var userManager          = new Mock <IIdentityMembershipProvider>();
            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var controller = new ExternalController(
                userRepository.Object,
                contactRepository.Object,
                tokenProvider.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);
        }
示例#8
0
    public void EndTurn()
    {
        GameObject tank = tanks[currentTankIndex];

        TankController tankController = tank.GetComponent <TankController>();

        if (tank.activeInHierarchy && tankController != null)
        {
            tankController.actionPoint.Add(50);
        }

        ExternalController externalController = tank.GetComponent <ExternalController>();

        if (externalController != null)
        {
            externalController.enabled = false;
        }

        currentTankIndex = currentTankIndex == tanks.Count - 1 ? 0 : currentTankIndex + 1;
        SetCurrentTank();
    }
示例#9
0
    private void SetCurrentTank()
    {
        GameObject tank = tanks[currentTankIndex];

        if (!tank.activeInHierarchy)
        {
            EndTurn();
            return;
        }

        endTurnButton.interactable = tank.tag == "Player";

        CameraController.instance.SetTarget(tank.transform);

        ExternalController externalController = tank.GetComponent <ExternalController>();

        if (externalController != null)
        {
            externalController.enabled = true;
        }
    }
示例#10
0
        public void BadAccessTokenReturnsNotAutorized()
        {
            var userRepository       = new LocalRepository <InsideUser>();
            var contactRepository    = new Mock <IRepository <Contact> >();
            var tokenProvider        = new Mock <IAccessTokenProvider>();
            var userManager          = new Mock <IIdentityMembershipProvider>();
            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var controller = new ExternalController(
                userRepository,
                contactRepository.Object,
                tokenProvider.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);



            InsideUser testUser1 = ModelHelper.TestUser1AllDataNoReferences;
            InsideUser testUser2 = ModelHelper.TestUser1AllDataNoReferences;

            testUser1.Role.Add(new InsideRole()
            {
                Name = "consultant"
            });
            testUser1.Token.Add(new Token()
            {
                AccessToken = "abc123"
            });

            userRepository.Add(testUser1);
            userRepository.Add(testUser2);

            var result = controller.GetBudgetSummary("bad acces token");

            Assert.IsInstanceOfType(result, typeof(UnauthorizedResult));
        }
示例#11
0
        public void GoodAccessTokenReturnsResult()
        {
            var userRepository    = new LocalRepository <InsideUser>();
            var contactRepository = new Mock <IRepository <Contact> >();
            var tokenProvider     = new Mock <IAccessTokenProvider>();
            var userManager       = new Mock <IIdentityMembershipProvider>();
            var budgetRepository  = new LocalRepository <Budget>();
            var clientRepository  = new LocalRepository <Client>();
            var serverTimeMock    = new Mock <IServerTime>();

            var controller = new ExternalController(
                userRepository,
                contactRepository.Object,
                tokenProvider.Object,
                userManager.Object,
                budgetRepository,
                clientRepository,
                serverTimeMock.Object);

            InsideUser testUser1 = ModelHelper.TestUser1AllDataNoReferences;
            InsideUser testUser2 = ModelHelper.TestUser1AllDataNoReferences;

            var client = ModelHelper.TestClient1AllDataNoReferences;

            client.Labels.Add(new Label()
            {
                Name = "Kampanjplaneras"
            });
            client.Consultant = ModelHelper.TestConsultant;

            var client2 = ModelHelper.TestClient2AllDataNoReferences;

            client2.Consultant = ModelHelper.TestConsultant;

            testUser1.Role.Add(new InsideRole()
            {
                Name = "consultant"
            });
            testUser1.Token.Add(new Token()
            {
                AccessToken = "good acces token"
            });

            userRepository.Add(testUser1);
            userRepository.Add(testUser2);

            var jan  = new DateTime(2014, 1, 1);
            var feb  = new DateTime(2014, 2, 1);
            var mars = new DateTime(2014, 3, 1);

            serverTimeMock.Setup(s => s.RequestStarted).Returns(jan.AddDays(10));


            Budget budget1 = new Budget()
            {
                Month = feb, Value = 1500
            };;
            Budget budget2 = new Budget()
            {
                Month = jan, Value = 2000
            };

            budget1.Client = client;
            budget2.Client = client;

            budgetRepository.Add(budget1);
            budgetRepository.Add(budget2);

            clientRepository.Add(client);
            clientRepository.Add(client2);

            client.Budgets.Add(budget1);
            client.Budgets.Add(budget2);

            Budget budget3 = new Budget()
            {
                Month = feb, Value = 1000
            };
            Budget budget4 = new Budget()
            {
                Month = jan, Value = 3000
            };

            client.Budgets.Add(budget3);
            client.Budgets.Add(budget4);
            budget3.Client = client2;

            budgetRepository.Add(budget4);
            budgetRepository.Add(budget3);


            var result = controller.GetBudgetSummary("good acces token") as OkNegotiatedContentResult <BudgetMonthSummary>;

            Assert.AreEqual(-500, result.Content.diff);
            Assert.AreEqual(1, result.Content.numClients);
            Assert.AreEqual(1, result.Content.TotalClients);
        }
示例#12
0
        public void SetContactInteractionUpdatesExistingInteraction()
        {
            var userRepository    = new Mock <IRepository <InsideUser> >();
            var contactRepository = new LocalRepository <Contact>();

            var userManager    = new Mock <IIdentityMembershipProvider>();
            var tokenGenerator = new Mock <IAccessTokenProvider>();

            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var accessToken = "AccessToken";
            var clientId    = 13;
            var contact     = new Contact()
            {
                Id       = 1,
                ClientId = clientId
            };

            contactRepository.Add(contact);

            var interaction1 = new ContactInteraction
            {
                Type  = "Rating",
                Value = "Lead"
            };

            contact.Interaction.Add(interaction1);

            var interaction2 = new Interaction()
            {
                Type  = "Rating",
                Value = "Ej Lead"
            };


            tokenGenerator.Setup(tg => tg.Validate(clientId, accessToken)).Returns(true);

            var controller = new ExternalController(
                userRepository.Object,
                contactRepository,
                tokenGenerator.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);


            var result = controller.SetContactInteraction(clientId, accessToken, contact.Id, interaction2) as OkNegotiatedContentResult <Contact>;

            Assert.IsTrue(
                contactRepository.Where(l => l.Id == l.Id)
                .First()
                .Interaction.Any(li => li.Type == "Rating" && li.Value == "Ej Lead"));

            Assert.IsFalse(
                contactRepository.Where(l => l.Id == l.Id)
                .First()
                .Interaction.Any(li => li.Type == "Rating" && li.Value == "Lead"));
        }
示例#13
0
        public void GetContactListReturnsContactsBasedOnPageNumber()
        {
            var userRepository    = new Mock <IRepository <InsideUser> >();
            var contactRepository = new LocalRepository <Contact>();

            var userManager    = new Mock <IIdentityMembershipProvider>();
            var tokenGenerator = new Mock <IAccessTokenProvider>();

            var budgetRepositoryMock = new Mock <IRepository <Budget> >();
            var clientRepositoryMock = new Mock <IRepository <Client> >();
            var serverTimeMock       = new Mock <IServerTime>();

            var accessToken = "AccessToken";

            var insideUser = new InsideUser()
            {
                UserId   = 1,
                ClientId = 1,
            };

            var client = new Client()
            {
                Id = 1,
            };

            client.InsideUserSets.Add(insideUser);

            var startDate = new DateTime(2014, 1, 1, 12, 0, 0);

            for (int i = 1; i <= 23; i++)
            {
                var contact = new Contact()
                {
                    Id       = i,
                    ClientId = client.Id,
                    Client   = client,
                    Date     = startDate.AddHours(-10 * i)
                };

                contactRepository.Add(contact);
            }

            tokenGenerator.Setup(tg => tg.Validate((int)insideUser.ClientId, accessToken)).Returns(true);

            var controller = new ExternalController(
                userRepository.Object,
                contactRepository,
                tokenGenerator.Object,
                userManager.Object,
                budgetRepositoryMock.Object,
                clientRepositoryMock.Object,
                serverTimeMock.Object);


            var result = controller.GetContactList((int)insideUser.ClientId, accessToken, 20, 0) as OkNegotiatedContentResult <List <Contact> >;

            Assert.AreEqual(20, result.Content.Count());
            Assert.AreEqual(1, result.Content.ToArray()[0].Id);
            Assert.AreEqual(10, result.Content.ToArray()[9].Id);


            var result2 = controller.GetContactList((int)insideUser.ClientId, accessToken, 10, 0) as OkNegotiatedContentResult <List <Contact> >;

            Assert.AreEqual(10, result2.Content.Count());
            Assert.AreEqual(1, result2.Content.ToArray()[0].Id);
            Assert.AreEqual(10, result2.Content.ToArray()[9].Id);

            var result3 = controller.GetContactList((int)insideUser.ClientId, accessToken, 10, 5) as OkNegotiatedContentResult <List <Contact> >;

            Assert.AreEqual(10, result3.Content.Count());
            Assert.AreEqual(6, result3.Content.ToArray()[0].Id);
            Assert.AreEqual(15, result3.Content.ToArray()[9].Id);
        }