Пример #1
0
        public void TestPropertyListingRepository()
        {
            var repo   = new PropertyListingRepository();
            var result = repo.GetProperties(@"C:\Test\PropertyList.json");

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 6);
        }
        public ListingUnitTest()
        {
            AppSettings appSettings = new AppSettings();

            appSettings.ConnectionStrings = new ConnectionStrings()
            {
                ApiDatabase = $"Server=JS_HP\\MSSQLSERVER2019;Database=Backend-TakeHomeExercise;Trusted_Connection=True;MultipleActiveResultSets=true"
            };
            var settingOptions = Options.Create <AppSettings>(appSettings);
            var options        = new DbContextOptionsBuilder <DataContext>().Options;

            var dbContext = new DataContext(options, settingOptions);

            var mock = new Mock <ILogger <PropertyListingBusiness> >();
            ILogger <PropertyListingBusiness> bLogger = mock.Object;

            //or use this short equivalent
            var rLogger = Mock.Of <ILogger <PropertyListingRepository> >();


            var mappingConfig = new MapperConfiguration(mc =>
            {
                mc.AddProfile(new PropertyListingMapper());
            });
            IMapper mapper = mappingConfig.CreateMapper();
            //_mapper = mapper;


            var listingRepository = new PropertyListingRepository(dbContext, settingOptions, rLogger);
            var listingResponse   = new ViewModels.API.PropertyListingResponse();

            //var memoryCacheOptions = Mock.Of<IOptions<MemoryCacheOptions>>();
            var services = new ServiceCollection();

            services.AddMemoryCache();
            var serviceProvider = services.BuildServiceProvider();
            var memoryCache     = serviceProvider.GetService <IMemoryCache>();
            var cacheManager    = new CacheManager(memoryCache);

            _propertyListingBusiness = new PropertyListingBusiness(bLogger, mapper, listingRepository, listingResponse, cacheManager);
        }