public async void TestUpdateManagersAsync() { var dbContext = DbContextMocker.GetContext(nameof(this.TestUpdateManagersAsync)); var managersRepository = new ManagersRepository(dbContext, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var managersService = new ManagersService(managersRepository, null); var controller = new ManagersController(managersService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var parameters = new JObject() { new JProperty("customerName", "test"), new JProperty("managerId", "1"), }; var manager = dbContext.Managers.FirstOrDefault(); var updatewith = new ManagersViewModel() { Id = manager.Id, FirstName = "johnTEST", LastName = "Shon", }; var response = await controller.UpdateManager(updatewith); Assert.Equal(updatewith.FirstName, dbContext.Managers.Find(manager.Id).FirstName); dbContext.Dispose(); }
public async Task TestGetManagersAsync() { var dbContext = DbContextMocker.GetContext(nameof(this.TestGetManagersAsync)); var managersRepository = new ManagersRepository(dbContext, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var managersService = new ManagersService(managersRepository, null); var controller = new ManagersController(managersService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext(), }, }; var parameters = new ManagersPagingParameters() { PageNumber = 1, PageSize = 1, MinId = 0, }; var response = await controller.GetManagers(parameters); var value = response.Value; Assert.Single(value); controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext(), }; parameters = new ManagersPagingParameters() { PageNumber = 1, PageSize = 2, MinId = 0, }; response = await controller.GetManagers(parameters); value = response.Value; Assert.Equal(2, value.Count()); controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext(), }; parameters = new ManagersPagingParameters() { PageNumber = 1, PageSize = 2, MinId = 2, }; response = await controller.GetManagers(parameters); value = response.Value; Assert.Single(value); dbContext.Dispose(); }
public async void TestDeleteCustomer() { var customerService = new Mock <ICustomersService>(); customerService.Setup(repo => repo.DeleteCustomer(It.IsAny <int>())); var controller = new CustomersController(customerService.Object, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var response = await controller.DeleteCustomer(1); Assert.Equal("Microsoft.AspNetCore.Mvc.OkResult", response.GetType().ToString()); }
public async Task TestGetCustomerAsync() { var dbContext = DbContextMocker.GetContext(nameof(this.TestGetCustomerAsync)); var customersRepository = new CustomersRepository(dbContext); var customerService = new CustomersService(customersRepository, null); var controller = new CustomersController(customerService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var response = await controller.GetCustomer(1); var value = response.Value; dbContext.Dispose(); Assert.Equal("John Johnson", value.CustomerName); }
public async Task TestGetManagerAsync() { var dbContext = DbContextMocker.GetContext(nameof(this.TestGetManagerAsync)); var managersRepository = new ManagersRepository(dbContext, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var managersService = new ManagersService(managersRepository, null); var controller = new ManagersController(managersService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var response = await controller.GetManager(2); var value = response.Value; dbContext.Dispose(); Assert.Equal("Test", value.FirstName); }
public async Task TestGetCustomerUnitAsync() { var customerService = new Mock <ICustomersService>(); customerService.Setup(repo => repo.GetCustomer(It.IsAny <int>())).ReturnsAsync(new Customer() { CustomerName = "Test" }); var controller = new CustomersController(customerService.Object, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var response = await controller.GetCustomer(1); var value = response.Value; Assert.NotNull(value); }
public async Task TestGetCustomersUnitAsync() { var customerService = new Mock <ICustomersService>(); customerService.Setup(repo => repo.GetCustomers()).ReturnsAsync(new List <Customer>() { new Customer() }); var controller = new CustomersController(customerService.Object, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var response = await controller.GetCustomers(); var value = response.Value; Assert.Single(value); }
public async void TestAddCustomer() { var customerService = new Mock <ICustomersService>(); customerService.Setup(repo => repo.CreateCustomer(It.IsAny <string>(), It.IsAny <int>())); var controller = new CustomersController(customerService.Object, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var parameters = new JObject() { new JProperty("customerName", "test"), new JProperty("managerId", "1"), }; var response = await controller.CreateNewCustomer(parameters); Assert.Equal("Microsoft.AspNetCore.Mvc.OkResult", response.GetType().ToString()); }
public async void TestAddCustomer() { var dbContext = DbContextMocker.GetContext(nameof(this.TestAddCustomer)); var customersRepository = new CustomersRepository(dbContext); var customerService = new CustomersService(customersRepository, null); var controller = new CustomersController(customerService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var parameters = new JObject() { new JProperty("customerName", "test"), new JProperty("managerId", "1"), }; var response = await controller.CreateNewCustomer(parameters); Assert.Equal(1, dbContext.Customers.Where(c => c.CustomerName == "test").Count()); dbContext.Dispose(); }
public async void TestCreateManager() { var dbContext = DbContextMocker.GetContext(nameof(this.TestCreateManager)); var managersRepository = new ManagersRepository(dbContext, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var managersService = new ManagersService(managersRepository, null); var controller = new ManagersController(managersService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var parameters = new ManagersViewModel() { FirstName = "john", LastName = "Shon", }; var response = await controller.CreateNewManager(parameters); Assert.Equal(1, dbContext.Managers.Where(c => c.LastName == "Shon").Count()); dbContext.Dispose(); }
public async void TestDeleteCustomer() { var dbContext = DbContextMocker.GetContext(nameof(this.TestDeleteCustomer)); var customersRepository = new CustomersRepository(dbContext); var customerService = new CustomersService(customersRepository, null); var controller = new CustomersController(customerService, AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); var parameters = new JObject() { new JProperty("customerName", "test"), new JProperty("managerId", "1"), }; Assert.NotNull(dbContext.Customers.Find(2)); var response = await controller.DeleteCustomer(2); Assert.Null(dbContext.Customers.Find(2)); dbContext.Dispose(); }
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo() { Title = "My API", Version = "v1", }); c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme() { In = ParameterLocation.Header, Description = "Please insert JWT with Bearer into field", Name = "Authorization", Type = SecuritySchemeType.ApiKey, }); c.AddSecurityRequirement(new OpenApiSecurityRequirement() { { new OpenApiSecurityScheme() { Reference = new OpenApiReference() { Type = ReferenceType.SecurityScheme, Id = "Bearer", }, }, new string[] { } }, }); }); services.AddDbContext <CustomersContext>( options => { options.UseSqlServer(this.Configuration.GetConnectionString("CustomersContext")); }, ServiceLifetime.Transient); services.AddSingleton(AutoMapperConfiguration.ConfigureForWeb().CreateMapper()); services.AddTransient <IManagersRepository, ManagersRepository>(); services.AddTransient <ICustomerRepository, CustomersRepository>(); services.AddTransient <ICustomersService, CustomersService>(); services.AddTransient <IManagersService, ManagersService>(); services.AddCors(options => { options.AddPolicy( "CorsPolicy", builder => builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader()); }); var appSettingsSection = this.Configuration.GetSection("AppSettings"); services.Configure <AppSettings>(appSettingsSection); // configure jwt authentication var appSettings = appSettingsSection.Get <AppSettings>(); var key = Encoding.ASCII.GetBytes(appSettings.Secret); services.AddAuthentication(x => { x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(x => { x.RequireHttpsMetadata = false; x.SaveToken = true; x.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(key), ValidateIssuer = false, ValidateAudience = false, }; }); // configure DI for application services services.AddScoped <IUserRepository, UserRepository>(); services.AddScoped <IUserService, UserService>(); services.AddControllers().AddNewtonsoftJson(); }