public void GetLastLocation()
        {
            // Arrange
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            var controller  = new LocationRecordController(repository);
            var newMemberId = Guid.NewGuid();
            var newLocation = new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(),
                MemberID  = Guid.NewGuid()
            };
            var lastLocation = new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds(),
                MemberID  = Guid.NewGuid()
            };

            repository.Add(newLocation);
            repository.Add(lastLocation);

            // Act
            var result = (LocationRecord)(controller.GetLatestForMember(newMemberId) as ObjectResult).Value;

            // Assert
            Assert.Equal(lastLocation.ID, result.ID);
        }
Example #2
0
        public void ShouldTrackAllLocationsForMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Timestamp = 1,
                MemberID  = memberGuid,
                Latitude  = 12.3f
            });
            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Timestamp = 2,
                MemberID  = memberGuid,
                Latitude  = 23.4f
            });
            controller.AddLocation(Guid.NewGuid(), new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Timestamp = 3,
                MemberID  = Guid.NewGuid(),
                Latitude  = 23.4f
            });

            ICollection <LocationRecord> locationRecords =
                ((controller.GetLocationsForMember(memberGuid) as ObjectResult).Value as ICollection <LocationRecord>);

            Assert.Equal(2, locationRecords.Count());
        }
Example #3
0
        public void ShouldTrackLatestLocationsForMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            Guid latestId = Guid.NewGuid();

            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID       = Guid.NewGuid(), Timestamp = 1,
                MemberID = memberGuid, Latitude = 12.3f
            });
            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID       = latestId, Timestamp = 3,
                MemberID = memberGuid, Latitude = 23.4f
            });
            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID       = Guid.NewGuid(), Timestamp = 2,
                MemberID = memberGuid, Latitude = 23.4f
            });
            controller.AddLocation(Guid.NewGuid(), new LocationRecord()
            {
                ID       = Guid.NewGuid(), Timestamp = 4,
                MemberID = Guid.NewGuid(), Latitude = 23.4f
            });

            LocationRecord latest = ((controller.GetLatestForMember(memberGuid) as ObjectResult).Value as LocationRecord);

            Assert.NotNull(latest);
            Assert.Equal(latestId, latest.ID);
        }
        public void GetLocationForMemberReturns()
        {
            // Arrange
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            var controller  = new LocationRecordController(repository);
            var newMemberId = Guid.NewGuid();
            var newLocation = new LocationRecord()
            {
                ID       = Guid.NewGuid(),
                MemberID = Guid.NewGuid()
            };
            var lastLocation = new LocationRecord()
            {
                ID       = Guid.NewGuid(),
                MemberID = Guid.NewGuid()
            };

            repository.Add(newLocation);
            repository.Add(lastLocation);

            // Act
            var result = (ICollection <LocationRecord>)(controller.GetLocationsForMember(newMemberId) as ObjectResult).Value;

            // Assert
            Assert.Equal(2, result.Count);
            Assert.True(result.Contains(lastLocation));
            Assert.True(result.Contains(newLocation));
        }
        public void ShouldTrackAllLocationsForMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            controller.AddLocation(memberGuid, new LocationRecord()
            {
                Id        = Guid.NewGuid(),
                Timestamp = 1,
                MemberId  = memberGuid,
                Latitude  = 12.3f
            });
            controller.AddLocation(memberGuid, new LocationRecord()
            {
                Id        = Guid.NewGuid(),
                Timestamp = 2,
                MemberId  = memberGuid,
                Latitude  = 23.4f
            });
            controller.AddLocation(Guid.NewGuid(), new LocationRecord()
            {
                Id        = Guid.NewGuid(),
                Timestamp = 3,
                MemberId  = Guid.NewGuid(),
                Latitude  = 23.4f
            });

            IEnumerable <LocationRecord> locationRecords =
                controller.GetLocationsForMember(memberGuid).Value;

            Assert.Equal(2, locationRecords.Count());
        }
Example #6
0
        public void ShouldTrackNullLatestForNewMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            LocationRecord latest = ((controller.GetLatestForMember(memberGuid) as ObjectResult).Value as LocationRecord);

            Assert.Null(latest);
        }
Example #7
0
        public void ShouldReturnEmtpyListForNewMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            ICollection <LocationRecord> locationRecords =
                ((controller.GetLocationsForMember(memberGuid) as ObjectResult).Value as ICollection <LocationRecord>);

            Assert.Equal(0, locationRecords.Count());
        }
        public void ShouldReturnEmtpyListForNewMember()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            IEnumerable <LocationRecord> locationRecords =
                controller.GetLocationsForMember(memberGuid).Value;

            Assert.Equal(0, locationRecords.Count());
        }
Example #9
0
        public void ShouldAdd()
        {
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            LocationRecordController  controller = new LocationRecordController(repository);
            Guid memberGuid = Guid.NewGuid();

            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID       = Guid.NewGuid(),
                MemberID = memberGuid, Timestamp = 1
            });
            controller.AddLocation(memberGuid, new LocationRecord()
            {
                ID       = Guid.NewGuid(),
                MemberID = memberGuid, Timestamp = 2
            });

            Assert.Equal(2, repository.AllForMember(memberGuid).Count());
        }
        public void AddLocationAppendsLocation()
        {
            // Arrange
            ILocationRecordRepository repository = new InMemoryLocationRecordRepository();
            var controller  = new LocationRecordController(repository);
            var newMemberId = Guid.NewGuid();
            var newLocation = new LocationRecord()
            {
                ID        = Guid.NewGuid(),
                Altitude  = 35.6f,
                Latitude  = 34.2f,
                Longitude = 22f,
                MemberID  = newMemberId,
                Timestamp = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds()
            };
            // Act
            var result     = controller.AddLocation(newMemberId, newLocation) as IActionResult;
            var lastRecord = repository.GetLatestForMember(newMemberId);

            // Assert
            Assert.True(result is CreatedResult);
            Assert.Equal(newLocation.ID, lastRecord.ID);
        }