Ejemplo n.º 1
0
        public async void Should_Return_Filtered_Vehicles()
        {
            // Arrange
            var vehicles     = DataProvider.GetVehicles();
            var vehiclesMock = vehicles.AsQueryable().BuildMock();
            var filter       = new VehicleFilter
            {
                Manufacturer = "Ford"
            };
            var vehicleRepositoryMock = new Mock <IGenericRepository <Vehicle, int> >();

            vehicleRepositoryMock.Setup(m => m.Get()).Returns(vehiclesMock.Object);
            var vehicleController = new VehicleController(vehicleRepositoryMock.Object,
                                                          Mock.Of <IGenericRepository <VehicleModel, int> >(),
                                                          Mock.Of <IGenericRepository <Booking, int> >(),
                                                          Mock.Of <IGenericRepository <Insurance, int> >(),
                                                          MapperProvider.GetMapper());
            // Act
            var request = await vehicleController.Get(filter);

            var result = request as OkObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 200);
            var dtos = result.Value as List <VehicleListItemDto>;

            Assert.NotNull(dtos);
            Assert.True(dtos.Count == 2);
        }
Ejemplo n.º 2
0
        public async void Should_Return_Vehicle_By_Id()
        {
            // Arrange
            var vehicles              = DataProvider.GetVehicles();
            var bookingsMock          = new List <Booking>().AsQueryable().BuildMock();
            var vehicleRepositoryMock = new Mock <IGenericRepository <Vehicle, int> >();

            vehicleRepositoryMock.Setup(m => m.GetById(It.IsAny <int>()))
            .Returns <int>(id => Task.FromResult(vehicles.SingleOrDefault(v => v.Id == id)));
            var bookingRepositoryMock = new Mock <IGenericRepository <Booking, int> >();

            bookingRepositoryMock.Setup(m => m.Get())
            .Returns(bookingsMock.Object);
            var vehicleController = new VehicleController(vehicleRepositoryMock.Object,
                                                          Mock.Of <IGenericRepository <VehicleModel, int> >(),
                                                          bookingRepositoryMock.Object,
                                                          Mock.Of <IGenericRepository <Insurance, int> >(),
                                                          MapperProvider.GetMapper());
            // Act
            var request = await vehicleController.GetById(1);

            var result = request as OkObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 200);
        }
        private void SetupContainer()
        {
            var container = new Container();

            container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

            container.Register <IImageManager, ImageManager>();
            container.Register <IFileNameHelper, FileNameHelper>();
            container.Register <IRepository <Recipe>, GenericRepository <Recipe> >(Lifestyle.Scoped);
            container.Register <IRepository <MealType>, GenericRepository <MealType> >(Lifestyle.Scoped);
            container.Register <IRepository <Image>, GenericRepository <Image> >(Lifestyle.Scoped);
            container.Register <IRepository <Author>, GenericRepository <Author> >(Lifestyle.Scoped);


            container.RegisterMvcControllers(Assembly.GetExecutingAssembly());
            container.RegisterWebApiControllers(GlobalConfiguration.Configuration, Assembly.GetExecutingAssembly());

            var mapperProvider = new MapperProvider();

            container.RegisterSingleton(() => mapperProvider.GetMapper());

            container.Verify();
            GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);

            DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container));
        }
Ejemplo n.º 4
0
        public void ComputePriceBasedOnBottle(
            int buyerId,
            int amount,
            decimal expectedPrice
            )
        {
            // arrange
            using var mock = AutoMock.GetStrict(builder =>
                                                builder.RegisterInstance(MapperProvider.GetMapper()));

            mock.Mock <IBottleRepository>()
            .Setup(repo => repo.GetBottleForPriceModel(100))
            .Returns(Task.FromResult(GetBottle()));

            var transaction = new TransactionForAdditionDto
            {
                BuyerId   = buyerId,
                Amount_ml = amount,
                BottleId  = 100
            };

            var operation = mock.Create <GetTransactionPriceOperation>();

            // act
            decimal actualPrice = operation.Run(transaction).Result;

            // assert
            Assert.AreEqual(expectedPrice, actualPrice, $"Computed price is different from expected price (expected: {expectedPrice}, actual: {actualPrice})");
        }
Ejemplo n.º 5
0
        protected TDestination TestMapping <TSource, TDestination>(TSource input, TDestination expected, Action <TDestination, TDestination> additionalAssert, params string[] exceptProperties)
        {
            // arrange
            var mapper = MapperProvider.GetMapper();

            // act
            var actual = mapper.Map <TDestination>(input);

            // assert

            additionalAssert?.Invoke(expected, actual);

            var propertiesToCheck =
                typeof(TDestination)
                .GetProperties()
                .Where(p => !exceptProperties.Contains(p.Name));

            foreach (var prop in propertiesToCheck)
            {
                Assert.AreEqual(prop.GetValue(expected), prop.GetValue(actual),
                                $"Unexpected value of property {typeof(TDestination).Name}.{prop.Name}");
            }


            // return mapping
            return(actual);
        }
Ejemplo n.º 6
0
        public void NoMapping()
        {
            var provider = new MapperProvider();

            provider.RegisterAssembly(Assembly.GetExecutingAssembly());

            Assert.Throws <ArgumentOutOfRangeException>(() => provider.GetMapper <string>());
        }
Ejemplo n.º 7
0
        public void SingleMapping()
        {
            var provider = new MapperProvider();

            provider.RegisterAssembly(Assembly.GetExecutingAssembly());

            Assert.NotNull(provider.GetMapper <MapperProviderTests>());
        }
Ejemplo n.º 8
0
        public void MapperProvider_ProvidesMap()
        {
            // Arrange
            var mappingProvider = new MapperProvider(null);

            // Act
            var mapping = mappingProvider.GetMapper();

            // Assert
            mapping.Should().NotBeNull();
            mapping.ConfigurationProvider.Should().NotBeNull();
            mapping.ConfigurationProvider.GetAllTypeMaps().Length.Should().Be(24);
        }
Ejemplo n.º 9
0
        protected TDestination TestMapping <TSource, TDestination>(TSource input, TDestination expected) where TDestination : IEquatable <TDestination>
        {
            // arrange
            var mapper = MapperProvider.GetMapper();

            // act
            var actual = mapper.Map <TDestination>(input);

            // assert
            Assert.AreEqual(expected, actual);


            // return mapping
            return(actual);
        }
Ejemplo n.º 10
0
        public async void Should_Return_404_For_Bad_Id()
        {
            // Arrange
            var vehicleModels = DataProvider.GetVehicleModels();
            var vehicleModelRepositoryMock = new Mock <IGenericRepository <VehicleModel, int> >();

            vehicleModelRepositoryMock.Setup(m => m.GetById(It.IsAny <int>()))
            .Returns <int>(id => Task.FromResult(vehicleModels.SingleOrDefault(vm => vm.Id == id)));
            var vehicleModelController = new VehicleModelController(vehicleModelRepositoryMock.Object,
                                                                    Mock.Of <IGenericRepository <Vehicle, int> >(),
                                                                    MapperProvider.GetMapper());
            // Act
            var request = await vehicleModelController.GetById(9001);

            var result = request as NotFoundObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 404);
        }
Ejemplo n.º 11
0
        public async void Should_Update_Vehicle()
        {
            // Arrange
            var vehicles       = DataProvider.GetVehicles();
            var vehiclesMock   = DataProvider.GetVehicles().AsQueryable().BuildMock();
            var insurancesMock = new List <Insurance>().AsQueryable().BuildMock();
            var updatedVehicle = new VehicleDto
            {
                Id             = 1,
                VehicleModelId = 3,
                LocationCode   = "333"
            };
            bool updated = false;
            var  vehicleRepositoryMock = new Mock <IGenericRepository <Vehicle, int> >();

            vehicleRepositoryMock.Setup(m => m.Get()).Returns(vehiclesMock.Object);
            vehicleRepositoryMock.Setup(m => m.Exists(It.IsAny <int>()))
            .Returns <int>(id => Task.FromResult(vehicles.SingleOrDefault(v => v.Id == id) != null));
            vehicleRepositoryMock.Setup(m => m.Update(It.IsAny <Vehicle>()))
            .Returns(Task.FromResult(true))
            .Callback((Vehicle vehicle) => { updated = true; });
            var insuranceRepositoryMock = new Mock <IGenericRepository <Insurance, int> >();

            insuranceRepositoryMock.Setup(m => m.Get()).Returns(insurancesMock.Object);
            var vehicleController = new VehicleController(vehicleRepositoryMock.Object,
                                                          Mock.Of <IGenericRepository <VehicleModel, int> >(),
                                                          Mock.Of <IGenericRepository <Booking, int> >(),
                                                          insuranceRepositoryMock.Object,
                                                          MapperProvider.GetMapper());
            // Act
            var request = await vehicleController.Update(updatedVehicle.Id, updatedVehicle);

            var result = request as OkResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 200);
            Assert.True(updated);
        }
Ejemplo n.º 12
0
        public async void Should_Return_VehicleModels()
        {
            // Arrange
            var vehicleModelsQueryable     = DataProvider.GetVehicleModels().AsQueryable().BuildMock();
            var vehicleModelRepositoryMock = new Mock <IGenericRepository <VehicleModel, int> >();

            vehicleModelRepositoryMock.Setup(m => m.Get())
            .Returns(vehicleModelsQueryable.Object);
            var vehicleModelController = new VehicleModelController(vehicleModelRepositoryMock.Object,
                                                                    Mock.Of <IGenericRepository <Vehicle, int> >(),
                                                                    MapperProvider.GetMapper());
            // Act
            var request = await vehicleModelController.Get(new VehicleModelFilter());

            var result = request as OkObjectResult;

            // Assert
            Assert.NotNull(result);
            Assert.True(result.StatusCode == 200);
            var dtos = result.Value as List <VehicleModelDto>;

            Assert.NotNull(dtos);
            Assert.True(dtos.Count == 3);
        }
Ejemplo n.º 13
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut = mapperProvider.GetMapper<ProvinceMapper>();
     province = GetProvince();
 }
Ejemplo n.º 14
0
 public DataFacade(MapperProvider mappperProvider)
 {
     this.countryMapper = mappperProvider.GetMapper<CountryMapper>();
     this.provinceMapper = mappperProvider.GetMapper<ProvinceMapper>();
     this.userMapper = mappperProvider.GetMapper<UserMapper>();
 }
Ejemplo n.º 15
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut            = mapperProvider.GetMapper <CountryMapper>();
     country        = GetCountry();
 }
Ejemplo n.º 16
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut = mapperProvider.GetMapper<UserMapper>();
     user = GetUser();
 }
Ejemplo n.º 17
0
        public async Task GetArticlesByTextFilter_ReturnsArticlesThatFitFilter(int count, string filter)
        {
            //Arrange
            var data = new List <Article>
            {
                new Article {
                    Title = "Cats", Content = "Cats are awesome"
                },
                new Article {
                    Title = "Dogs", Content = "Dogs are human friends"
                },
                new Article {
                    Title = "HotDog", Content = "Today I going to eat hotdog"
                },
                new Article {
                    Title = "Bengal", Content = "Cat with tiger fur"
                },
                new Article {
                    Title = "Summer", Content = "This summer is hot"
                }
            }.AsQueryable().BuildMockDbSet();
            var mockContext = new Mock <BlogDbContext>();

            mockContext.Setup(c => c.Set <Article>()).Returns(data.Object);
            var service = new ArticleService(new UnitOfWork(mockContext.Object), null, null, MapperProvider.GetMapper());
            //Act
            var filtered = await service.GetArticlesByTextFilter(filter);

            //Assert
            Assert.Equal(count, filtered.Count());
        }
Ejemplo n.º 18
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut            = mapperProvider.GetMapper <ProvinceMapper>();
     province       = GetProvince();
 }
Ejemplo n.º 19
0
 private void RegisterMapping()
 {
     _objectContainer.RegisterInstanceAs(MapperProvider.GetMapper(
                                             new MappingConfiguration()
                                             ));
 }
Ejemplo n.º 20
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut = mapperProvider.GetMapper<CountryMapper>();
     country = GetCountry();
 }
Ejemplo n.º 21
0
 private static void RegisterMapping(ContainerBuilder builder)
 {
     builder.RegisterInstance(MapperProvider.GetMapper(
                                  new MappingConfiguration()
                                  ));
 }
Ejemplo n.º 22
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddIdentityCore <User>(opt =>
            {
                opt.Password.RequireNonAlphanumeric = false;
            })
            .AddRoles <Role>()
            .AddRoleManager <RoleManager <Role> >()
            .AddSignInManager <SignInManager <User> >()
            .AddRoleValidator <RoleValidator <Role> >()
            .AddEntityFrameworkStores <DataContext>();

            services.AddControllers();
            services.AddMvc()
            .AddFluentValidation(config => config.RegisterValidatorsFromAssemblyContaining <Models.User.UserModel>());

            //Sqlite database
            services.AddDbContext <DataContext>(
                optBuilder => optBuilder.UseSqlite(
                    Configuration.GetConnectionString("SqliteConnection"),
                    b => b.MigrationsAssembly("WhiskyMan.API"))
                );

            services.AddSingleton(MapperProvider.GetMapper());
            services.AddScoped <AuthService>();
            services.AddScoped <DataContext>();
            services.AddScoped <IUserRepository, UserRepository>();
            services.AddScoped <IBottleRepository, BottleRepository>();
            services.AddScoped <IDataContextWrapper, DataContextWrapper>();
            services.AddScoped <IBottleDescriptionRepository, BottleDescriptionRepository>();
            services.AddScoped <IUserManagerWrapper, UserManagerWrapper>();
            services.AddScoped <ISignInManagerWrapper, SignInManagerWrapper>();
            services.AddScoped <IRoleManagerWrapper, RoleManagerWrapper>();
            services.AddScoped <UpdateRolesOperation>();
            services.AddHttpContextAccessor();
            services.AddScoped <IRequestBodyAccessor, RequestBodyAccessor>();
            services.AddScoped <GetTransactionPriceOperation>();
            services.AddScoped <ITransactionRepository, TransactionRepository>();
            services.AddScoped <ITransactionFacade, TransactionFacade>();

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).
            AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters()
                {
                    ValidateIssuerSigningKey = true,
                    IssuerSigningKey         = new SymmetricSecurityKey(
                        Encoding.UTF8.GetBytes(Configuration.GetSection("AppSettings:Token").Value)),
                    ValidateIssuer   = false,
                    ValidateAudience = false
                };
            });


            // policies
            services.AddScoped <IAuthorizationHandler, AddOwnTransactionHandler>();
            services.AddScoped <IAuthorizationHandler, ViewOwnUserInfoHandler>();

            services.AddAuthorization(opt =>
            {
                opt.AddPolicy(TransactionPolicies.AddOwnTransaction, policy =>
                              policy.Requirements.Add(new AddOwnTransactionRequirement()));
                opt.AddPolicy(UserPolicies.ViewOwnUserInfo, policy =>
                              policy.Requirements.Add(new ViewOwnUserInfoRequirement()));
            });
        }
Ejemplo n.º 23
0
 public void Init()
 {
     mapperProvider = new MapperProvider();
     sut            = mapperProvider.GetMapper <UserMapper>();
     user           = GetUser();
 }