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"); }
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"); } }
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"); }