public void MapSourceToDestination_NonGenericMetod_AllOk()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource, MockDestination>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp)
            .AddMap(s => s.DateTimeProp, d => d.DateTimeProp)
            .AddMap(s => s.DoubleProp, d => d.DoubleProp);

            var source = new MockSource()
            {
                GuidProp     = Guid.NewGuid(),
                StringProp   = "anyString",
                IntProp      = 1234,
                DateTimeProp = DateTime.Now,
                DoubleProp   = 123.456
            };

            var result = (MockDestination)mapper.Map(typeof(MockSource), typeof(MockDestination), source);

            Assert.AreEqual(source.GuidProp, result.GuidProp, "GuidProp error.");
            Assert.AreEqual(source.StringProp, result.StringProp, "StringProp error.");
            Assert.AreEqual(source.IntProp, result.IntProp, "IntProp error.");
            Assert.AreEqual(source.DateTimeProp, result.DateTimeProp, "DateTimeProp error.");
            Assert.AreEqual(source.DoubleProp, result.DoubleProp, "DoubleProp error.");
        }
Ejemplo n.º 2
0
        public void Results_LinkHasSizes_UseSizes()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' href='favicons.ico' sizes='16x16 32x32'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicons.ico"),
                ExpectedSize = new Size(16, 16)
            }, scanner.Results[0]);
            Assert.AreEqual(new ScanResult
            {
                Location     = new Uri("http://www.example.com/favicons.ico"),
                ExpectedSize = new Size(32, 32)
            }, scanner.Results[1]);
        }
Ejemplo n.º 3
0
        public void Serialize()
        {
            string expected =
                "Start " +
                "MockSource " +
                "IsValid True IsValid " +
                "IntNumber 42 IntNumber " +
                $"DoubleNumber {double.MaxValue.ToString(CultureInfo.InvariantCulture)} DoubleNumber " +
                $"LongNumber {long.MaxValue} LongNumber " +
                "Name Source Name " +
                "Items " +
                "Item Name i1 Name Item " +
                "Item Name i2 Name Item " +
                "Items " +
                "DoubleArray " +
                "Item 1 Item " +
                "Item 2 Item " +
                "DoubleArray " +
                "MockSource " +
                "End";
            var            source     = new MockSource();
            var            writer     = new MockXmlWriter();
            IXmlSerializer serializer = XmlSerializer.GetBuilder(typeof(MockSource)).Build();

            serializer.Serialize(writer, source);
            string actual = writer.ToString();

            Assert.Equal(expected, actual);
        }
Ejemplo n.º 4
0
        public void Scan_AllResources_FindAll()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta rel='manifest' href='/manifest.json'>
                    <meta name='msapplication-config' content='browserconfig.xml'>
                    <link rel=icon href='favicon.png'>
                </head><body>Fake content.</body></html>");
            source.AddTextResource(new Uri(uri, "/manifest.json"), @"
                {'icons': [
                {'src': '/android-chrome-36x36.png', 'sizes': '36x36', 'type': 'image/png', 'density': 0.75},
                {'src': '/android-chrome-48x48.png', 'sizes': '48x48', 'type': 'image/png', 'density': 1},
                {'src': '/android-chrome-72x72.png', 'sizes': '72x72', 'type': 'image/png', 'density': 1.5},
                {'src': '/android-chrome-96x96.png', 'sizes': '96x96', 'type': 'image/png', 'density': 2},
                {'src': '/android-chrome-144x144.png', 'sizes': '144x144', 'type': 'image/png', 'density': 3},
                {'src': '/android-chrome-192x192.png', 'sizes': '192x192', 'type': 'image/png', 'density': 4}
                ]}".Replace('\'', '"'));
            source.AddTextResource(new Uri(uri, "/browserconfig.xml"),
                                   @"<?xml version='1.0' encoding='utf-8'?>
                <browserconfig><msapplication><tile>
                    <square70x70logo src='/mstile-70x70.png' />
                    <square150x150logo src='/mstile-150x150.png' />
                    <square310x310logo src='/mstile-310x310.png' />
                    <wide310x150logo src='/mstile-310x150.png' />
                    <TileColor>#29aaff</TileColor>
                </tile></msapplication></browserconfig>");

            var scanner = new Scanner(source);
            var results = scanner.Scan(uri).ToArray();

            Assert.AreEqual(12, results.Length);
        }
        public void MapReferenceProperty_MapperIsNotImplemented()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource, MockDestination>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp)
            .AddMap(s => s.DateTimeProp, d => d.DateTimeProp)
            .AddMap(s => s.DoubleProp, d => d.DoubleProp)
            .AddMap(s => s.ReferenceProperty, d => d.ReferenceProperty);

            var source = new MockSource()
            {
                GuidProp          = Guid.NewGuid(),
                StringProp        = "anyString",
                IntProp           = 1234,
                DateTimeProp      = DateTime.Now,
                DoubleProp        = 123.456,
                ReferenceProperty = new MockSource1()
                {
                    GuidProp   = Guid.NewGuid(),
                    StringProp = "anyRefString",
                    IntProp    = 456
                }
            };

            var result = mapper.Map <MockSource, MockDestination>(source);
        }
Ejemplo n.º 6
0
        public void Start_ContainsInvalidUri_Skip()
        {
            var uri    = new Uri("http://www.example.com/browserconfig.xml");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <?xml version='1.0' encoding='utf-8'?>
                <browserconfig>
                  <msapplication>
                    <tile>
                      <square70x70logo src='///invalid.png' />
                      <square150x150logo src='/mstile-150x150.png' />
                      <square310x310logo src='/mstile-310x310.png' />
                      <wide310x150logo src='/mstile-310x150.png' />
                      <TileColor>#29aaff</TileColor>
                    </tile>
                  </msapplication>
                </browserconfig>");

            var scanner = new BrowserconfigXmlScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(3, scanner.Results.Count);
        }
        public void MapSourceToDestination_NonGenericMetod_TSourceIsNotArrayDestinatiniIsArray()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource1, MockDestination1>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp);

            mapper.CreateConfiguration <MockSource, MockDestination>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp)
            .AddMap(s => s.DateTimeProp, d => d.DateTimeProp)
            .AddMap(s => s.DoubleProp, d => d.DoubleProp)
            .AddMap(s => s.ReferenceProperty, d => d.ReferenceProperty);

            var source1 = new MockSource()
            {
                GuidProp          = Guid.NewGuid(),
                StringProp        = "anyString",
                IntProp           = 1234,
                DateTimeProp      = DateTime.Now,
                DoubleProp        = 123.456,
                ReferenceProperty = new MockSource1()
                {
                    GuidProp   = Guid.NewGuid(),
                    StringProp = "anyRefString",
                    IntProp    = 456
                }
            };

            var source2 = new MockSource()
            {
                GuidProp          = Guid.NewGuid(),
                StringProp        = "anyString",
                IntProp           = 1234,
                DateTimeProp      = DateTime.Now,
                DoubleProp        = 123.456,
                ReferenceProperty = new MockSource1()
                {
                    GuidProp   = Guid.NewGuid(),
                    StringProp = "anyRefString",
                    IntProp    = 456
                }
            };

            var result = (IEnumerable)mapper.Map(
                typeof(MockSource),
                typeof(IEnumerable),
                (new List <MockSource>()
            {
                source1, source2
            }).AsQueryable());
        }
Ejemplo n.º 8
0
        public void Fetcher_NoLinks_MakeTwoRequests()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, "Fake content.");

            var fetcher = new Fetcher(source);

            fetcher.FetchClosest(uri, new Size(16, 16));

            Assert.AreEqual(2, source.RequestCount);
        }
Ejemplo n.º 9
0
        public void SuggestedScanners_NotFound_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
Ejemplo n.º 10
0
        public void WithExcludedProperty()
        {
            var            source           = new MockSource();
            var            writer           = new MockXmlWriter();
            var            excludedProperty = nameof(MockSource.IntNumber);
            IXmlSerializer serializer       = XmlSerializer.GetBuilder(typeof(MockSource))
                                              .WithExcludedProperty(excludedProperty)
                                              .Build();

            serializer.Serialize(writer, source);
            string actual = writer.ToString();

            Assert.DoesNotContain(excludedProperty, actual);
        }
Ejemplo n.º 11
0
        public void Start_InvalidXml_Skip()
        {
            var uri    = new Uri("http://www.example.com/browserconfig.xml");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <browserconfig>>");

            var scanner = new BrowserconfigXmlScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
        }
Ejemplo n.º 12
0
        public void SuggestedScanners_HtmlEndsAtTag_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, "<html><head><link");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
Ejemplo n.º 13
0
        public void WithRootName()
        {
            var            source     = new MockSource();
            var            writer     = new MockXmlWriter();
            string         rootName   = "CustomRoot";
            IXmlSerializer serializer = XmlSerializer.GetBuilder(typeof(MockSource))
                                        .WithRootName(rootName)
                                        .Build();

            serializer.Serialize(writer, source);
            string actual = writer.ToString();

            Assert.Contains(rootName, actual);
            Assert.DoesNotContain(nameof(MockSource), actual);
        }
Ejemplo n.º 14
0
        public void WithCollectionItemName()
        {
            var            source     = new MockSource();
            var            writer     = new MockXmlWriter();
            var            itemName   = "CustomItem";
            IXmlSerializer serializer = XmlSerializer.GetBuilder(typeof(MockSource))
                                        .WithCollectionItemName(nameof(MockSource.Items), itemName)
                                        .Build();

            serializer.Serialize(writer, source);
            string actual = writer.ToString();

            Assert.Contains(itemName, actual);
            Assert.DoesNotContain(nameof(XmlSerializer.DefaultItemName), actual);
        }
Ejemplo n.º 15
0
        public void Results_LinkInBody_Ignored()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><body>
                    <link rel=icon href='favicon.png'>
                </body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
        }
Ejemplo n.º 16
0
        public void MapperForPropertyMissingCast()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource, MockDestination>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.IntProp, d => d.StringProp);

            var source = new MockSource()
            {
                GuidProp = Guid.NewGuid(),
                IntProp  = 1234
            };

            var result = mapper.Map <MockSource, MockDestination>(source);
        }
Ejemplo n.º 17
0
        public void Fetcher_NonexistentLink_MakeThreeRequests()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='shortcut icon' href='nonexistent.png'>
                </head></html>");

            var fetcher = new Fetcher(source);

            fetcher.FetchClosest(uri, new Size(16, 16));

            Assert.AreEqual(3, source.RequestCount);
        }
Ejemplo n.º 18
0
        public void Fetcher_MultipleIconsInFile_UseBest()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, "Fake content.");
            source.AddImageResource(new Uri(uri, "/favicon.ico"), new Size(16, 16));
            source.AddImageResource(new Uri(uri, "/favicon.ico"), new Size(32, 32));
            source.AddImageResource(new Uri(uri, "/favicon.ico"), new Size(48, 48));

            var fetcher = new Fetcher(source);
            var image   = fetcher.FetchClosest(uri, new Size(32, 32));

            Assert.AreEqual(2, source.RequestCount);
            Assert.AreEqual(new Size(32, 32), image.Size);
        }
Ejemplo n.º 19
0
        public void Results_HtmlInCaps_ParseIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <HTML><HEAD>
                    <link rel='SHORTCUT ICON' href='favicon.png'>
                </HEAD><BODY>Fake content.</BODY></HTML>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
        }
Ejemplo n.º 20
0
        public void Results_MultipleLinks_FindAll()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' href='favicon1.png'>
                    <link rel='icon' href='favicon2.png'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(2, scanner.Results.Count);
        }
Ejemplo n.º 21
0
        public void SuggestedScanners_ManifestJsonLinked_SuggestIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta rel='manifest' href='/manifest.json'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(2, scanner.SuggestedScanners.Count); // plus FaviconIcoScanner
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(ManifestJsonScanner));
        }
Ejemplo n.º 22
0
        public void MapSourceToDestination_NonGenericMetod_TDestIsNotImplementDefaulConstructor()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource, MockDestination1>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp);

            var source = new MockSource()
            {
                GuidProp   = Guid.NewGuid(),
                StringProp = "anyString",
                IntProp    = 1234
            };

            var result = (MockDestinationWithoutDefaultConstructor)mapper.Map(typeof(MockSource), typeof(MockDestinationWithoutDefaultConstructor), source);
        }
        public void ShouldResolveCreatorFromScopedLocatorAndCreateInstance()
        {
            using (var scoped = Locator.Service.Get <ILocatorScopedFactory>().CreateScope())
            {
                var creator = scoped.Get <IRenderingCreatorScoped>().GetCreator <MockSource>("test");
                var sut     = DotNetStarter.ApplicationContext.Default.Locator.Get(creator.GetType()) as Func <MockSource, MockRendering>;
                var t       = new MockSource()
                {
                    Id = 100, Name = "Test Soruce"
                };

                Assert.IsNotNull(sut);

                var instance = sut(t);

                Assert.IsTrue(instance.Mock.Id == 100);
            }
        }
        public void Start_ContainsInvalidUri_Skip()
        {
            var uri    = new Uri("http://www.example.com/manifest.json");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                {'name': 'Favicon',
                'icons': [
	                {'src': '///invalid.png', 'sizes': '36x36'},
	                {'src': '/android-chrome-48x48.png', 'sizes': '48x48'}
                ]}".Replace('\'', '"'));

            var scanner = new ManifestJsonScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
        }
Ejemplo n.º 25
0
        public void SuggestedScanners_BrowserconfigXmlLinked_SuggestIt()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta name='msapplication-config' content='browserconfig.xml'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(2, scanner.SuggestedScanners.Count); // plus FaviconIcoScanner
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(BrowserconfigXmlScanner));
        }
Ejemplo n.º 26
0
        public void SuggestedScanners_InvalidBrowserconfigXmlUri_Skip()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta name='msapplication-config' content='///browserconfig.xml'>
                    <link rel=icon href='favicon.ico'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count); // just FaviconIcoScanner
        }
Ejemplo n.º 27
0
        public void SuggestedScanners_InvalidManifestJsonUri_Skip()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <meta rel='manifest' href='///manifest.json'>
                    <link rel=icon href='favicon.ico'>
                </head></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(1, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count); // just FaviconIcoScanner
        }
Ejemplo n.º 28
0
        public void MapReferenceProperty_MapperImplemented_AllOk()
        {
            var mapper = new Mapper();

            mapper.CreateConfiguration <MockSource1, MockDestination1>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp);

            mapper.CreateConfiguration <MockSource, MockDestination>()
            .AddMap(s => s.GuidProp, d => d.GuidProp)
            .AddMap(s => s.StringProp, d => d.StringProp)
            .AddMap(s => s.IntProp, d => d.IntProp)
            .AddMap(s => s.DateTimeProp, d => d.DateTimeProp)
            .AddMap(s => s.DoubleProp, d => d.DoubleProp)
            .AddMap(s => s.ReferenceProperty, d => d.ReferenceProperty);

            var source = new MockSource()
            {
                GuidProp          = Guid.NewGuid(),
                StringProp        = "anyString",
                IntProp           = 1234,
                DateTimeProp      = DateTime.Now,
                DoubleProp        = 123.456,
                ReferenceProperty = new MockSource1()
                {
                    GuidProp   = Guid.NewGuid(),
                    StringProp = "anyRefString",
                    IntProp    = 456
                }
            };

            var result = mapper.Map <MockSource, MockDestination>(source);

            Assert.AreEqual(source.GuidProp, result.GuidProp, "GuidProp error.");
            Assert.AreEqual(source.StringProp, result.StringProp, "StringProp error.");
            Assert.AreEqual(source.IntProp, result.IntProp, "IntProp error.");
            Assert.AreEqual(source.DateTimeProp, result.DateTimeProp, "DateTimeProp error.");
            Assert.AreEqual(source.DoubleProp, result.DoubleProp, "DoubleProp error.");

            Assert.AreEqual(source.ReferenceProperty.GuidProp, result.ReferenceProperty.GuidProp, "ReferenceProperty.GuidProp error.");
            Assert.AreEqual(source.ReferenceProperty.StringProp, result.ReferenceProperty.StringProp, "ReferenceProperty.StringProp error.");
            Assert.AreEqual(source.ReferenceProperty.IntProp, result.ReferenceProperty.IntProp, "ReferenceProperty.IntProp error.");
        }
Ejemplo n.º 29
0
        public void SuggestedScanners_InvalidLinks_SuggestFaviconIco()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='icon' src='favicon1.png'>
                    <link href='favicon1.png'>
                </head><body>Fake content.</body></html>");

            var scanner = new DefaultScanner(source, uri);

            scanner.Start();

            Assert.AreEqual(0, scanner.Results.Count);
            Assert.AreEqual(1, scanner.SuggestedScanners.Count);
            Assert.IsInstanceOfType(scanner.SuggestedScanners[0], typeof(FaviconIcoScanner));
        }
Ejemplo n.º 30
0
        public void Fetcher_PerfectIsLastLink_MakeTwoRequests()
        {
            var uri    = new Uri("http://www.example.com");
            var source = new MockSource();

            source.AddTextResource(uri, @"
                <html><head>
                    <link rel='shortcut icon' href='favicon_32.png' sizes='32x32'>
                    <link rel='shortcut icon' href='favicon_16.png' sizes='16x16'>
                </head></html>");
            source.AddImageResource(new Uri(uri, "/favicon_32.png"), new Size(32, 32));
            source.AddImageResource(new Uri(uri, "/favicon_16.png"), new Size(16, 16));

            var fetcher = new Fetcher(source);

            fetcher.FetchClosest(uri, new Size(16, 16));

            Assert.AreEqual(2, source.RequestCount);
        }