GittAtAlleDeltakereHarRegistertPosisjoner_NårScoreboardHenterPosisjonerForAlleLag_SkalSistePosisjonerForDeltakerePåBeggeLagReturneres
            ()
        {
            var givenLag = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var latitude  = 59.6785526164;
            var longitude = 10.6039274298;

            foreach (var lag in givenLag)
            {
                foreach (var deltaker in lag.Deltakere)
                {
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude, longitude);
                    TimeService.AddSeconds(200);
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude + 5, longitude + 5);
                }
            }
            _appSettings.ScoreboardSecret = "HemmeligAdminKode";
            var lagPosisjoner = posisjonsSevice.HentforAlleLag(_appSettings.ScoreboardSecret);

            Assert.AreEqual(2, lagPosisjoner.Count, "Skulle hatt to lag");

            Assert.AreEqual(2, lagPosisjoner[0].Posisjoner.Count, "Feil antall posisjoner for lag 1");
            Assert.AreEqual(2, lagPosisjoner[1].Posisjoner.Count, "Feil antall posisjoner for lag 2");
        }
        GittAtAlleDeltakereHarRegistertPosisjoner_NårEnHenterPosisjonerForLag_SkalBareSistePosisjonerForHvertLagReturneres
            ()
        {
            var givenLag = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var latitude  = 59.6785526164;
            var longitude = 10.6039274298;

            foreach (var lag in givenLag)
            {
                foreach (var deltaker in lag.Deltakere)
                {
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude, longitude);
                    TimeService.AddSeconds(200);
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude + 5, longitude + 5);
                }
            }

            var posisjonerForLag1 = posisjonsSevice.HentforLag(givenLag[0].LagId).Posisjoner;
            var posisjonerForLag2 = posisjonsSevice.HentforLag(givenLag[1].LagId).Posisjoner;

            Assert.AreEqual(2, posisjonerForLag1.Count, "Feil antall posisjoner for lag 1");
            Assert.AreEqual(2, posisjonerForLag2.Count, "Feil antall posisjoner for lag 2");
        }
Пример #3
0
        public void GittAktivPost_NårEtLagBrukerBombe_SkalLagetFåPoengOgPostenBliUsynligIEtAntallMinutterSelvOmStateBlirRekalkulert()
        {
            var match = _gitt.EnMatchMedTreLagOgTrePoster();

            var lag1       = match.DeltakendeLag.First();
            var deltaker11 = lag1.Lag.Deltakere.First();

            var gameservice      = _container.Resolve <GameService>();
            var gamestateservice = _container.Resolve <GameStateService>();

            var lag1State = gamestateservice.Get(lag1.Lag.LagId);

            Assert.AreEqual(1, lag1State.Vaapen.Count(x => x.VaapenId == Constants.Våpen.Bombe), "Skal ha 1 bombe");

            gameservice.RegistrerNyPost(deltaker11.DeltakerId, lag1.Lag.LagId, "HemmeligKode1", Constants.Våpen.Bombe);

            lag1State = gamestateservice.Get(lag1.Lag.LagId);
            Assert.AreEqual(100, lag1State.Score, "Skal ha fått poeng");
            Assert.AreEqual(2, lag1State.Poster.Count, "Skal bare se to poster (aktive)");
            Assert.AreEqual(0, lag1State.Vaapen.Count(x => x.VaapenId == Constants.Våpen.Bombe), "Skal ha brukt opp bomben");
            Assert.AreEqual(1, lag1State.Vaapen.Count(x => x.VaapenId == Constants.Våpen.Felle), "Skal fremdeles ha fellen");

            gamestateservice.Calculate();

            TimeService.AddSeconds(Constants.Våpen.BombeSkjulerPostIAntallSekunder + 5);

            lag1State = gamestateservice.Get(lag1.Lag.LagId);

            Assert.AreEqual(3, lag1State.Poster.Count, "Post skal bli synlig igjen");
        }
        public void NårEnDeltakerPosterSammePosisjonToGanger_SkalPosisjonenLagresIDatabasenBareEnGang()
        {
            var given = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var deltaker11 = given[0].Deltakere[0];
            var latitude   = 59.6785526164;
            var longitude  = 10.6039274298;

            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude, longitude);
            TimeService.AddSeconds(30);
            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude, longitude);

            using (var context = _dataContextFactory.Create())
            {
                Assert.AreEqual(1, context.DeltakerPosisjoner.Count(), "Skulle vært 1 posisjon");
            }
        }
        public void NårEnDeltakerPosterNyPosisjonToGangerMedGodTidMellom_SkalPosisjonenLagresIDatabasenToGanger()
        {
            var given = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var deltaker11 = given[0].Deltakere[0];
            var latitude   = 59.6785526164;
            var longitude  = 10.6039274298;

            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude, longitude);
            TimeService.AddSeconds(200);
            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude + 5, longitude + 5);

            using (var context = _dataContextFactory.Create())
            {
                Assert.AreEqual(2, context.DeltakerPosisjoner.Count(), "Feil antall posisjoner");
            }
        }
Пример #6
0
        public void GittAktivPost_NårEtLagBrukerFelle_SkalLagetFåPoengOgPostenForbliSynlig_VedNesteRegistreringSkalRegistrerendeLagFåFratrekkAvPoeng_OgPostenSkalBliUsynligEnPeriode()
        {
            var match = _gitt.EnMatchMedTreLagOgTrePoster();

            var lag1       = match.DeltakendeLag.First();
            var deltaker11 = lag1.Lag.Deltakere.First();

            var gameservice      = _container.Resolve <GameService>();
            var gamestateservice = _container.Resolve <GameStateService>();

            var lag1State = gamestateservice.Get(lag1.Lag.LagId);

            Assert.AreEqual(1, lag1State.Vaapen.Count(x => x.VaapenId == Constants.Våpen.Felle), "Skal ha 1 felle");

            gameservice.RegistrerNyPost(deltaker11.DeltakerId, lag1.Lag.LagId, "HemmeligKode1", Constants.Våpen.Felle);

            lag1State = gamestateservice.Get(lag1.Lag.LagId);
            Assert.AreEqual(100, lag1State.Score, "Skal ha fått poeng");
            Assert.AreEqual(3, lag1State.Poster.Count, "Skal bare se alle poster (aktive)");
            Assert.AreEqual(0, lag1State.Vaapen.Count(x => x.VaapenId == Constants.Våpen.Felle), "Skal ha brukt opp fellen");

            var lag2       = match.DeltakendeLag[1];
            var deltaker21 = lag2.Lag.Deltakere.First();

            var lag2State = gamestateservice.Get(lag2.Lag.LagId);

            gameservice.RegistrerNyPost(deltaker21.DeltakerId, lag2.Lag.LagId, "HemmeligKode1", null);
            var lag2StateEtterRegistrering = gamestateservice.Get(lag2.Lag.LagId);

            Assert.AreEqual(lag2State.Score - 80, lag2StateEtterRegistrering.Score, "Skal ha fått fratrekk i score");


            TimeService.AddSeconds(Constants.Våpen.BombeSkjulerPostIAntallSekunder + 5);

            lag1State = gamestateservice.Get(lag1.Lag.LagId);

            Assert.AreEqual(3, lag1State.Poster.Count, "Post skal bli synlig igjen");

            var meldingService = _container.Resolve <MeldingService>();

            Assert.AreEqual(3, meldingService.HentMeldinger(lag1.Lag.LagId).Count(), "Laget som rigget fellen skulle fått melding");
            Assert.AreEqual(2, meldingService.HentMeldinger(lag2.Lag.LagId).Count(), "Laget gikk i fellen skulle fått melding");
        }
        public void NårEnDeltakerFlytterSegMenRegistrererOfte_SkalPosisjonenLagresIDatabasenBareHvert10Sekund()
        {
            var given = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var deltaker11 = given[0].Deltakere[0];
            var latitude   = 59.6785526164;
            var longitude  = 10.6039274298;

            for (int i = 1; i < 100; i++)
            {
                posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude + 0.01 * i, longitude + 0.01 * i);
                TimeService.AddSeconds(1);
            }

            using (var context = _dataContextFactory.Create())
            {
                Assert.AreEqual(10, context.DeltakerPosisjoner.Count(), "Skulle vært 1 posisjon");
            }
        }
        public void NårEnDeltakerPosterNyPosisjonToGangerMedGodTidMellom_SkalSistePosisjonReturneresViaService()
        {
            var given = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var deltaker11 = given[0].Deltakere[0];
            var latitude   = 59.6785526164;
            var longitude  = 10.6039274298;

            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude, longitude);
            TimeService.AddSeconds(200);
            posisjonsSevice.RegistrerPosisjon(deltaker11.Lag.LagId, deltaker11.DeltakerId, latitude + 5, longitude + 5);

            var posisjonerForLag1 = posisjonsSevice.HentforLag(deltaker11.Lag.LagId);

            var pos = posisjonerForLag1.Posisjoner.Single();

            Assert.AreEqual(latitude + 5, pos.Latitude, "Feil lat");
            Assert.AreEqual(longitude + 5, pos.Longitude, "Feil lon");
            Assert.AreEqual(deltaker11.DeltakerId, pos.DeltakerId, "feil deltaker");
        }
        public void NårApplikasjonenRestartes_SkalSistePosisjonerHentesFraDatabasen()
        {
            var givenLag = _gitt.ToLagMedToDeltakere();

            var posisjonsSevice = _container.Resolve <PosisjonsService>();

            var latitude  = 59.6785526164;
            var longitude = 10.6039274298;

            foreach (var lag in givenLag)
            {
                foreach (var deltaker in lag.Deltakere)
                {
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude, longitude);
                    TimeService.AddSeconds(200);
                    posisjonsSevice.RegistrerPosisjon(deltaker.Lag.LagId, deltaker.DeltakerId, latitude + 5, longitude + 5);
                }
            }


            // Lag ny container for å simulere restart
            _container = RestApiApplication.CreateContainer();

            var posisjonService = _container.Resolve <PosisjonsService>();

            var posisjonForLag1 = posisjonService.HentforLag(givenLag[0].LagId);

            Assert.AreEqual(2, posisjonForLag1.Posisjoner.Count, "Feil antall posisjoner etter restart - lag1");

            var posisjonForLag2 = posisjonService.HentforLag(givenLag[1].LagId);

            Assert.AreEqual(2, posisjonForLag2.Posisjoner.Count, "Feil antall posisjoner etter restart - lag2");

            var posisjon = posisjonForLag1.Posisjoner[0];

            Assert.AreEqual(latitude + 5, posisjon.Latitude, "Latitude");
            Assert.AreEqual(longitude + 5, posisjon.Longitude, "Longitude");
        }