public void GetObjects() { var dbContext = new DesignTimeDbContextFactory().CreateDbContext(null); var repo = new GenericRepository <int, OfferedObject>(dbContext); repo.Add(new OfferedObject { CurrentTransactionType = TransactionType.Free, PublishedAt = DateTime.UtcNow, Photos = new System.Collections.Generic.List <ObjectPhoto> { new ObjectPhoto { AddedAtUtc = DateTime.UtcNow } }, }); repo.SaveChanges(); var impression = new Mock <IObjectImpressionsManager>(); var objectQueryHelper = new ObjectQueryHelper(); var userDataManager = new Mock <IUserDataManager>(); userDataManager.Setup(u => u.AddCurrentUserIfNeeded()).ReturnsAsync((new Login { LoginLocation = new Point(10, 1) }, null as User)); var configs = new Mock <IConfiguration>(); configs.Setup(c => c["Settings:IncludeObjectLessThan"]).Returns("500"); var photoConstructor = new Mock <Infrastructure.IPhotoUrlConstructor>(); photoConstructor.Setup(p => p.Construct(It.IsAny <ObjectPhoto>())).Returns("Hello there"); var objectGetter = new ObjectGetter(repo, photoConstructor.Object, impression.Object, objectQueryHelper, null, configs.Object, userDataManager.Object); var objects = objectGetter.GetObjects(new PagingArguments { Size = 10, StartObject = 0 }); Assert.True(true); }
public async Task GetObjects_ShouldReturnCorrectDistances() { var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326); var users = new List <User> { new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", }, new User { Status = UserStatus.Available, UserName = "******", } }; var logins = new List <Login> { new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(-10), LoginLocation = new Point(40, 40) { SRID = 4326 }, }, new Login { User = users[0], LoggedAt = DateTime.UtcNow.AddDays(0), LoginLocation = new Point(10, 10) { SRID = 4326 }, }, new Login { User = users[1], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(40, 40) { SRID = 4326 }, }, new Login { User = users[2], LoggedAt = DateTime.UtcNow.AddDays(10), LoginLocation = new Point(10.003, 10) { SRID = 4326 }, } }; users[0].Logins = new List <Login> { logins[0], logins[1] }; users[1].Logins = new List <Login> { logins[2] }; users[2].Logins = new List <Login> { logins[3] }; var objects = new List <OfferedObject> { new OfferedObject { OfferedObjectId = 1, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[0], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 2, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[1], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 3, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[2], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, new OfferedObject { OfferedObjectId = 4, PublishedAt = DateTime.UtcNow.AddDays(-1), ObjectStatus = ObjectStatus.Available, OwnerLogin = logins[2], CurrentTransactionType = TransactionType.Free, Photos = new List <ObjectPhoto>(), Tags = new List <ObjectTag>(), Impressions = new List <ObjectImpression>() }, }; var objectsRepo = new Mock <IRepository <int, OfferedObject> >(); var objectsMock = objects.AsQueryable().BuildMock(); objectsRepo.Setup(o => o.Table).Returns(objects.AsQueryable().BuildMock().Object); var loginRepo = new Mock <IRepository <Guid, Login> >(); var photoConstructor = new Mock <IPhotoUrlConstructor>(); var impression = new Mock <IObjectImpressionsManager>(); var objectQueryHelper = new ObjectQueryHelper(); var userDataManager = new Mock <IUserDataManager>(); userDataManager.Setup(u => u.AddCurrentUserIfNeeded()).ReturnsAsync((logins[3], users[2])); var configs = new Mock <IConfiguration>(); configs.Setup(c => c["Settings:IncludeObjectLessThan"]).Returns("500"); var getter = new ObjectGetter(objectsRepo.Object, photoConstructor.Object, impression.Object, objectQueryHelper, null, configs.Object, userDataManager.Object); var result = await getter.GetObjects(new PagingArguments { StartObject = 0, Size = 20 }); Assert.True(result.Count == 4); }