public async Task WhenTheMockupAPIIsCalled()
        {
            var mockup = new Mockup
            {
                design  = design,
                product = new MockupProduct
                {
                    id    = AvailableProducts.gildan_cotton_t_shirt,
                    color = "black"
                },
                template = new Template
                {
                    name       = $"Template created at {DateTime.Now}",
                    background = AvailableBackgrounds.brick
                },
                output = new MockupOutput
                {
                    width   = 11,
                    height  = 8.5f,
                    padding = 8,
                    format  = MockupOutputFormats.jpg
                }
            };

            response = await apiClient.MockupAPI.CreateMockupAsync(mockup).ConfigureAwait(false);
        }
Пример #2
0
        public void AutoMock()
        {
            var mockup        = new Mockup();
            var testInterface = mockup.Get <ITestInterface>();

            Assert.False(testInterface.DoSomething());
        }
Пример #3
0
        public static Mockup AddCommonMockups(this Mockup mockup, ITestOutputHelper output)
        {
            mockup.MockServiceCollection.AddThreaxProcessHelper(o =>
            {
                o.IncludeLogOutput      = false;
                o.DecorateProcessRunner = r => new SpyProcessRunner(r)
                {
                    Events = new ProcessEvents()
                    {
                        ErrorDataReceived = (o, e) => { if (e.DataReceivedEventArgs.Data != null)
                                                        {
                                                            output.WriteLine(e.DataReceivedEventArgs.Data);
                                                        }
                        },
                        OutputDataReceived = (o, e) => { if (e.DataReceivedEventArgs.Data != null)
                                                         {
                                                             output.WriteLine(e.DataReceivedEventArgs.Data);
                                                         }
                        },
                    }
                };
            });
            mockup.MockServiceCollection.AddThreaxPwshShellRunner();

            mockup.MockServiceCollection.AddSingleton <Config>(s =>
            {
                var json = File.ReadAllText("config.json");
                return(JsonSerializer.Deserialize <Config>(json));
            });

            return(mockup);
        }
Пример #4
0
        /// <summary>
        /// Setup global shared mockups that can be used across may tests.
        /// </summary>
        /// <param name="mockup">The mockup class to configure.</param>
        /// <returns>The passed in mockup test.</returns>
        public static Mockup SetupGlobal(this Mockup mockup)
        {
            mockup.MockServiceCollection.AddTimeTracking();
            mockup.MockServiceCollection.AddAppMapper(includeAutomapperConfig: true);

            mockup.Add <AppDbContext>(m => new AppDbContext(new DbContextOptionsBuilder <AppDbContext>()
                                                            .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                            .Options));

            mockup.Add <IIdentity>(m => CreateIdentity(Roles.DatabaseRoles()));

            mockup.Add <ClaimsPrincipal>(m => new ClaimsPrincipal(m.Get <IIdentity>()));

            mockup.Add <HttpContext>(m => new DefaultHttpContext()
            {
                User = m.Get <ClaimsPrincipal>()
            });

            mockup.Add <IHttpContextAccessor>(m => new HttpContextAccessor()
            {
                HttpContext = m.Get <HttpContext>()
            });

            mockup.Add <ControllerContext>(m => new ControllerContext()
            {
                HttpContext = m.Get <HttpContext>()
            });

            return(mockup);
        }
        public async Task <IHttpActionResult> PutMockup(int id, Mockup mockup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != mockup.Id)
            {
                return(BadRequest());
            }

            db.Entry(mockup).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MockupExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Пример #6
0
        /// <summary>
        /// Setup global shared mockups that can be used across may tests.
        /// </summary>
        /// <param name="mockup">The mockup class to configure.</param>
        /// <returns>The passed in mockup test.</returns>
        public static Mockup SetupGlobal(this Mockup mockup)
        {
            mockup.Add <IValidSchemaTypeManager>(s =>
            {
                var mock = new Mock <IValidSchemaTypeManager>();
                mock.Setup(i => i.IsValid(It.IsAny <Type>())).Returns(true);
                return(mock.Object);
            });

            mockup.Add <EndpointDocJsonSchemaGenerator>(s => new EndpointDocJsonSchemaGenerator(HalcyonConvention.DefaultJsonSchemaGeneratorSettings, s.Get <IValueProviderResolver>(), s.Get <ISchemaCustomizerResolver>(), s.Get <IAutoTitleGenerator>()));

            mockup.Add <ISchemaBuilder>(s => new SchemaBuilder(s.Get <EndpointDocJsonSchemaGenerator>(), s.Get <IValidSchemaTypeManager>()));

            mockup.Add <SchemaJsonConverter>(m => new SchemaJsonConverter());

            mockup.Add <JsonSerializerSettings>(s =>
            {
                var settings        = HalcyonConvention.DefaultJsonSerializerSettings;
                settings.Formatting = Formatting.Indented; //Use indented for tests, makes test files easier to read
                return(settings);
            });

            mockup.Add <JsonSerializer>(s => JsonSerializer.Create(s.Get <JsonSerializerSettings>()));

            return(mockup);
        }
        public static Mockup AddCommonMockups(this Mockup mockup, ITestOutputHelper output)
        {
            mockup.MockServiceCollection.AddThreaxProcessHelper(o =>
            {
                o.IncludeLogOutput      = false;
                o.DecorateProcessRunner = r => new SpyProcessRunner(r)
                {
                    Events = new ProcessEvents()
                    {
                        ErrorDataReceived = (o, e) => { if (e.DataReceivedEventArgs.Data != null)
                                                        {
                                                            output.WriteLine(e.DataReceivedEventArgs.Data);
                                                        }
                        },
                        OutputDataReceived = (o, e) => { if (e.DataReceivedEventArgs.Data != null)
                                                         {
                                                             output.WriteLine(e.DataReceivedEventArgs.Data);
                                                         }
                        },
                    }
                };
            });
            mockup.MockServiceCollection.AddThreaxPwshShellRunner();
            mockup.MockServiceCollection.AddThreaxProvisionAzCli();

            return(mockup);
        }
        public async Task <IHttpActionResult> GetMockup(int id)
        {
            Mockup mockup = await db.Mockup.FindAsync(id);

            if (mockup == null)
            {
                return(NotFound());
            }

            return(Ok(mockup));
        }
        public async Task <IHttpActionResult> PostMockup(Mockup mockup)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Mockup.Add(mockup);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = mockup.Id }, mockup));
        }
Пример #10
0
        public async Task <IHttpActionResult> DeleteMockup(int id)
        {
            Mockup mockup = await db.Mockup.FindAsync(id);

            if (mockup == null)
            {
                return(NotFound());
            }

            db.Mockup.Remove(mockup);
            await db.SaveChangesAsync();

            return(Ok(mockup));
        }
Пример #11
0
        public void DiSingleton()
        {
            var mockup = new Mockup();

            mockup.MockServiceCollection.TryAddSingleton <ITestInterface, TestImplementation>();
            var testInterface = mockup.Get <ITestInterface>();

            Assert.NotNull(testInterface);
            Assert.True(testInterface.DoSomething());
            var testInterface2 = mockup.Get <ITestInterface>();

            Assert.NotNull(testInterface2);
            Assert.True(testInterface2.DoSomething());
            Assert.Equal(testInterface, testInterface2); //Make sure scoped is working, should get the same instance
        }
Пример #12
0
        public void ManualMock()
        {
            var mockup = new Mockup();

            mockup.Add <ITestInterface>(s =>
            {
                var mock = new Mock <ITestInterface>();
                mock.Setup(i => i.DoSomething())
                .Returns(true);
                return(mock.Object);
            });
            var testInterface = mockup.Get <ITestInterface>();

            Assert.True(testInterface.DoSomething());
        }
Пример #13
0
        public void DiTransient()
        {
            var mockup = new Mockup();

            mockup.MockServiceCollection.TryAddTransient <ITestInterface, TestImplementation>();
            var testInterface = mockup.Get <ITestInterface>();

            Assert.NotNull(testInterface);
            Assert.True(testInterface.DoSomething());
            var testInterface2 = mockup.Get <ITestInterface>();

            Assert.NotNull(testInterface2);
            Assert.True(testInterface2.DoSomething());
            Assert.NotEqual(testInterface, testInterface2); //Make sure transient is working, should get two different instances
        }
Пример #14
0
        /// <summary>
        /// Setup a IWebHost in the mocks. This will use the configuration files from the test project.
        /// </summary>
        /// <param name="mockup">The mockup class to configure.</param>
        /// <returns>The passed in mockup test.</returns>
        public static Mockup SetupWebHost(this Mockup mockup)
        {
            mockup.Add <IWebHost>(m =>
            {
                var hostBuilder = new WebHostBuilder()
                                  .UseEnvironment("development")
                                  .UseKestrel()
                                  .UseStartup <Startup>()
                                  .ConfigureAppConfiguration(configuration =>
                {
                    configuration.Sources.Clear();
                    configuration.AddJsonFile("appsettings.json");
                    configuration.AddJsonFile("appsettings.Development.json");
                });

                return(hostBuilder.Build());
            });

            return(mockup);
        }
Пример #15
0
        public void MockOverride()
        {
            //This test just uses exception classes due to easy inheritance
            //not because it actually is exception based

            var mockup = new Mockup();

            mockup.Add <Exception>(s =>
            {
                return(new InvalidCastException());
            });

            mockup.Add <Exception>(s =>
            {
                return(new InvalidOperationException());
            });

            var test = mockup.Get <Exception>();

            Assert.IsType <InvalidOperationException>(test);
        }
Пример #16
0
        private void ListBoxMock_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ListBox tempListBox = (ListBox)sender;

            if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
            {
                tempListBox.SelectionMode = SelectionMode.Multiple;

                // Save the first type of product
                string flagNameSelected = "";

                var mockups = tempListBox.SelectedItems.Cast <Mockup>().ToList <Mockup>();

                if (mockups.Count > 0)
                {
                    flagNameSelected = mockups[0].MockupName.Split('-')[0];
                }

                foreach (var item in tempListBox.Items.Cast <Mockup>().ToList <Mockup>())
                {
                    if (IsExistIn(item.MockupName, mockups))
                    {
                        item.IsSelected = true;
                    }
                    else
                    {
                        item.IsSelected = false;
                    }

                    if (item.IsSelected)
                    {
                        ListMockupPicked.Add(new Mockup()
                        {
                            MockupName       = item.MockupName,
                            MockupSymbolPath = item.MockupSymbolPath,
                            IsSelected       = true
                        });
                    }
                }

                // Remove if product is not selected
                for (int i = 0; i < ListMockupPicked.Count; i++)
                {
                    string flagName = ListMockupPicked[i].MockupName.Split('-')[0];

                    if (!IsExistIn(ListMockupPicked[i].MockupName, mockups) && flagName == flagNameSelected)
                    {
                        ListMockupPicked.RemoveAt(i);
                    }
                }

                ListMockupPicked = ListMockupPicked.Distinct(new ItemEqualityComparer()).Where(m => m.IsSelected).ToList();

                if (mockups.Count > 0)
                {
                    Mockup temp = mockups[0];
                    this.storage.BackgroundImage = temp.MockupSymbolPath;
                    string mockName = temp.MockupName.Split('-')[0] + "-" + temp.MockupName.Split('-')[1];
                    var    isExist  = connection.Table <RenderConfig>().Where(acc => acc.Name == mockName).FirstOrDefault();
                    if (isExist != null)
                    {
                        Canvas.SetLeft(rectangle1, isExist.Left);
                        Canvas.SetTop(rectangle1, isExist.Top);
                        rectangle1.Width      = isExist.Width;
                        rectangle1.Height     = isExist.Height;
                        RectangleHeight.Value = isExist.Angle;
                        image_rotate.Angle    = isExist.Angle;
                        canvas1.UpdateLayout();
                    }
                }
            }
            else
            {
                ListMockupPicked.Clear();

                tempListBox.SelectionMode = SelectionMode.Single;

                if (tempListBox.SelectedItem != null)
                {
                    Mockup temp = (Mockup)tempListBox.SelectedItem;
                    this.storage.BackgroundImage = temp.MockupSymbolPath;
                    string mockName = temp.MockupName.Split('-')[0] + "-" + temp.MockupName.Split('-')[1];
                    var    isExist  = connection.Table <RenderConfig>().Where(acc => acc.Name == mockName).FirstOrDefault();
                    if (isExist != null)
                    {
                        Canvas.SetLeft(rectangle1, isExist.Left);
                        Canvas.SetTop(rectangle1, isExist.Top);
                        rectangle1.Width      = isExist.Width;
                        rectangle1.Height     = isExist.Height;
                        RectangleHeight.Value = isExist.Angle;
                        image_rotate.Angle    = isExist.Angle;
                        canvas1.UpdateLayout();
                    }
                }
            }

            if (ListMockupPicked.Count > 1)
            {
                ListColorPicker.Clear();
                ListTypePicker.Clear();

                for (int i = 0; i < ListMockupPicked.Count; i++)
                {
                    string colorName = ListMockupPicked[i].MockupName.Split('-')[2];
                    string typeName  = ListMockupPicked[i].MockupName.Split('-')[0];
                    if (!CheckColorIsExist(colorName))
                    {
                        ListColorPicker.Add(new ColorPickerDTO()
                        {
                            ID = i, ColorName = colorName
                        });
                    }

                    if (!CheckTypeIsExist(typeName))
                    {
                        ListTypePicker.Add(new TypePickerDTO()
                        {
                            ID = i, TypeName = typeName
                        });
                    }
                }

                // Set source for datagrid
                gvTypePickers.ItemsSource  = ListTypePicker;
                gvColorPickers.ItemsSource = ListColorPicker;

                // Refresh datagrid
                gvColorPickers.Items.Refresh();
                gvTypePickers.Items.Refresh();
            }
            else
            {
                ListColorPicker.Clear();
                ListTypePicker.Clear();

                gvColorPickers.Items.Refresh();
                gvTypePickers.Items.Refresh();
            }
        }
 public async Task <MockupResponse> CreateMockupAsync(Mockup mockup) =>
 await CallMultipartAPIAsync <MockupResponse>(typeof(MockupAPI), nameof(MockupAPI.CreateMockupAsync), mockup).ConfigureAwait(false);
        private static Mockup SetupModel(this Mockup mockup)
        {
            mockup.Add <IValueRepository>(m => new ValueRepository(m.Get <AppDbContext>(), m.Get <AppMapper>()));

            return(mockup);
        }
Пример #19
0
        private void Init()
        {
            // load settings
            opTbEmail.Text          = Settings.Default.EMAIL;
            opTbPass.Text           = Settings.Default.PASSWORD;
            opChbShowMockup.Checked = Settings.Default.SHOW_MOCKUP;

            // load products data from json
            ViralStyleDataController.Instance.LoadProductJson();

            // get mockup names
            List <string> names = new List <string>();

            for (int i = 0; i < viralMockupImageList.Images.Keys.Count; i++)
            {
                names.Add(viralMockupImageList.Images.Keys[i]);
            }

            // init mockup list
            flowLayoutMokcup.Controls.Clear();
            if (opChbShowMockup.Checked)
            {
                var products = ViralStyleDataController.Instance.ViralStyleProduct;
                if (products != null)
                {
                    string rootPath = Directory.GetCurrentDirectory() + "\\";
                    for (int i = 0; i < products.ProductData.Count; i++)
                    {
                        var product = products.ProductData[i];
                        for (int k = 0; k < product.category_products.Count; k++)
                        {
                            var        proc       = product.category_products[k].products;
                            MockupInfo mockupInfo = new MockupInfo
                            {
                                ImagePath = rootPath + Settings.Default.ViralStyle_Mockup_Path + "\\"
                                            + proc.front_base,
                                Name    = proc.name,
                                Colors  = proc.product_colors.Select(p => p.hex).ToList(),
                                Product = proc
                            };
                            if (File.Exists(mockupInfo.ImagePath))
                            {
                                Mockup mockup = new Mockup(mockupInfo);
                                flowLayoutMokcup.Controls.Add(mockup);
                            }
                        }
                    }
                }
            }


            //var pairs = ViralStyleDataController.Instance.GetMockupImagesbyNames(names);

            // load list view items
            //if(pairs.Count > 0)
            //{
            //    vsListView.Items.Clear();
            //    foreach (var key in pairs.Keys)
            //    {
            //        vsListView.Items.Add(new ListViewItem(pairs[key], key));
            //    }
            //}
        }
Пример #20
0
        private static Mockup SetupModel(this Mockup mockup)
        {
            mockup.Add <IGitRepoRepository>(m => new GitRepoRepository(m.Get <IRepoFolderProvider>(), m.Get <IClonePathBuilder>(), m.Get <IProcessRunner>()));

            return(mockup);
        }