Пример #1
0
        public void Can_Send_Pagination_View_Model()
        {
            Mock <IThingRepository> mock = new Mock <IThingRepository>();

            mock.Setup(m => m.Things).Returns(new List <Thing>
            {
                new Thing {
                    ThingId = 1, Name = "Thing1"
                },
                new Thing {
                    ThingId = 2, Name = "Thing2"
                },
                new Thing {
                    ThingId = 3, Name = "Thing3"
                },
                new Thing {
                    ThingId = 4, Name = "Thing4"
                },
                new Thing {
                    ThingId = 5, Name = "Thing5"
                }
            });
            ThingsController controller = new ThingsController(mock.Object);

            controller.pageSize = 3;

            ThingsListViewModel result = (ThingsListViewModel)controller.List(null, 2).Model;

            PagingInfo pagingInfo = result.PagingInfo;

            Assert.AreEqual(pagingInfo.CurrentPage, 2);
            Assert.AreEqual(pagingInfo.ItemsPerPage, 3);
            Assert.AreEqual(pagingInfo.TotalItems, 5);
            Assert.AreEqual(pagingInfo.TotalPages, 2);
        }
Пример #2
0
        public void Can_Paginate()
        {
            Mock <IThingRepository> mock = new Mock <IThingRepository>();

            mock.Setup(m => m.Things).Returns(new List <Thing>
            {
                new Thing {
                    ThingId = 1, Name = "Thing1"
                },
                new Thing {
                    ThingId = 2, Name = "Thing2"
                },
                new Thing {
                    ThingId = 3, Name = "Thing3"
                },
                new Thing {
                    ThingId = 4, Name = "Thing4"
                },
                new Thing {
                    ThingId = 5, Name = "Thing5"
                }
            });
            ThingsController controller = new ThingsController(mock.Object);

            controller.pageSize = 3;

            ThingsListViewModel result = (ThingsListViewModel)controller.List(null, 2).Model;

            List <Thing> things = result.Things.ToList();

            Assert.IsTrue(things.Count == 2);
            Assert.AreEqual(things[0].Name, "Thing4");
            Assert.AreEqual(things[1].Name, "Thing5");
        }
Пример #3
0
        public void Can_Filter_Things()
        {
            Mock <IThingRepository> mock = new Mock <IThingRepository>();

            mock.Setup(m => m.Things).Returns(new List <Thing>
            {
                new Thing {
                    ThingId = 1, Name = "Thing1", Kind = "Kind1"
                },
                new Thing {
                    ThingId = 2, Name = "Thing2", Kind = "Kind2"
                },
                new Thing {
                    ThingId = 3, Name = "Thing3", Kind = "Kind1"
                },
                new Thing {
                    ThingId = 4, Name = "Thing4", Kind = "Kind3"
                },
                new Thing {
                    ThingId = 5, Name = "Thing5", Kind = "Kind2"
                }
            });
            ThingsController controller = new ThingsController(mock.Object);

            controller.pageSize = 3;

            List <Thing> result = ((ThingsListViewModel)controller.List("Kind2", 1).Model).Things.ToList();

            Assert.AreEqual(result.Count(), 2);
            Assert.IsTrue(result[0].Name == "Thing2" && result[0].Kind == "Kind2");
            Assert.IsTrue(result[1].Name == "Thing5" && result[1].Kind == "Kind2");
        }
Пример #4
0
    public override void Interact()
    {
        ThingsController tc = GameObject.FindGameObjectWithTag("ThingsController").GetComponent <ThingsController>();

        tc.CurrentMemory = identifier;
        tc.UpdateThePositioning(GameObject.FindGameObjectWithTag("Player").GetComponent <Player>().transform.position);
        StartCoroutine(GameObject.FindGameObjectWithTag("MainCamera").GetComponent <FadeScene>().FadeOutToScene(sceneName));
    }
Пример #5
0
        public void Generate_Kind_Specific_Thing_Count()
        {
            Mock <IThingRepository> mock = new Mock <IThingRepository>();

            mock.Setup(m => m.Things).Returns(new List <Thing>
            {
                new Thing {
                    ThingId = 1, Name = "Thing1", Kind = "Kind1"
                },
                new Thing {
                    ThingId = 2, Name = "Thing2", Kind = "Kind2"
                },
                new Thing {
                    ThingId = 3, Name = "Thing3", Kind = "Kind1"
                },
                new Thing {
                    ThingId = 4, Name = "Thing4", Kind = "Kind3"
                },
                new Thing {
                    ThingId = 5, Name = "Thing5", Kind = "Kind2"
                }
            });

            ThingsController controller = new ThingsController(mock.Object);

            controller.pageSize = 3;

            int res1   = ((ThingsListViewModel)controller.List("Kind1").Model).PagingInfo.TotalItems;
            int res2   = ((ThingsListViewModel)controller.List("Kind2").Model).PagingInfo.TotalItems;
            int res3   = ((ThingsListViewModel)controller.List("Kind3").Model).PagingInfo.TotalItems;
            int resAll = ((ThingsListViewModel)controller.List(null).Model).PagingInfo.TotalItems;

            Assert.AreEqual(res1, 2);
            Assert.AreEqual(res2, 2);
            Assert.AreEqual(res3, 1);
            Assert.AreEqual(resAll, 5);
        }
Пример #6
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ApplicationDbContext applicationDbContext, ILoggerFactory loggerFactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseWebAssemblyDebugging();
            }
            else
            {
                // Handles exceptions and generates a custom response body
                app.UseExceptionHandler("/api/errors/500");

                // Handles non-success status codes with empty body
                app.UseStatusCodePagesWithReExecute("/api/errors/{0}");

                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();

                var path = env.ContentRootPath;
                loggerFactory.AddFile($"{path}/Logs/Log.txt");
            }

            app.UseForwardedHeaders(new ForwardedHeadersOptions
            {
                ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
            });

            app.UseSwagger(c =>
            {
                c.PreSerializeFilters.Add((swagger, httpReq) =>
                {
                    swagger.Servers = new List <OpenApiServer>();
                    if (env.IsProduction())
                    {
                        swagger.Servers.Add(new OpenApiServer
                        {
                            Url = $"{httpReq.Scheme}://iot.pedrorendeiro.eu"
                        });
                    }
                    else if (env.IsDevelopment())
                    {
                        swagger.Servers.Add(new OpenApiServer
                        {
                            Url = $"{httpReq.Scheme}://{httpReq.Host.Value}"
                        });
                    }
                });

                c.RouteTemplate = "api/{documentName}/openApi.json";
            });

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.RoutePrefix = "api";
                c.SwaggerEndpoint("v1/openApi.json", "Pedro's IoT API v1");
                c.DocumentTitle = "API Documentation";
                c.EnableFilter();

                c.OAuthClientId(Configuration["AzureAdB2C:ClientId"]);
                c.OAuthClientSecret(Configuration["AzureAdB2C:ClientSecret"]);
                c.OAuthAdditionalQueryStringParams(new Dictionary <string, string>
                {
                    { "prompt", "login" },
                    { "nonce", "defaultNonce" }
                });
                c.OAuthScopeSeparator(" ");
                c.OAuthUsePkce();

                c.DefaultModelRendering(Swashbuckle.AspNetCore.SwaggerUI.ModelRendering.Model);
                c.DefaultModelExpandDepth(1);
                c.DefaultModelsExpandDepth(-1);

                c.DisplayRequestDuration();
                c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.List);
                c.EnableDeepLinking();

                c.EnableValidator();

                c.ConfigObject.AdditionalItems.Add("persistAuthorization", true);

                //c.InjectStylesheet("/static/css/swaggerUI.css");
                //c.InjectJavascript("/custom.js", "text/javascript");
            });

            //applicationDbContext.Database.Migrate();

            ThingsController.UpdateThingsAndPolicies(applicationDbContext);

            app.UseHttpsRedirection();
            app.UseBlazorFrameworkFiles();
            app.UseStaticFiles();

            app.UseRouting();

            app.UseCors();

            app.UseAuthentication();
            app.UseAuthorization();

            app.UseMvcWithDefaultRoute();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapRazorPages();
                endpoints.MapControllers();
                endpoints.MapHub <SignalR>("/Hub/SignalR");
                endpoints.MapFallbackToFile("index.html");
            });
        }