Exemple #1
0
    public Func <Vessel, string[], object> GetAPIHandler(string API)
    {
        if (SimpleValues.ContainsKey(API.ToLowerInvariant()))
        {
            return((v, a) =>
            {
                if (FlightData.GetLastNavUpdateUT() + 0.05 < Planetarium.GetUniversalTime())
                {
                    FlightData.updateNavigationData();
                }
                return SimpleValues[API.ToLowerInvariant()]();
            });
        }

        return(null);
    }
Exemple #2
0
        public void set_the_title()
        {
            var subject = new ItemSubject()
            {
                Title  = "first",
                Title2 = "second"
            };

            var target = new SimpleValues <ItemSubject>(subject);

            var map1 = new FeedItem <ItemSubject>();

            map1.Title(x => x.Title);

            var map2 = new FeedItem <ItemSubject>();

            map2.Title(x => x.Title2);

            var item1 = new SyndicationItem();

            map1.As <IFeedItem <ItemSubject> >().ConfigureItem(item1, target);
            item1.Title.Text.ShouldEqual(subject.Title);


            var item2 = new SyndicationItem();

            map2.As <IFeedItem <ItemSubject> >().ConfigureItem(item2, target);
            item2.Title.Text.ShouldEqual(subject.Title2);
        }
        public void set_the_title()
        {
            var subject = new ItemSubject(){
                Title = "first",
                Title2 = "second"
            };

            var target = new SimpleValues<ItemSubject>(subject);

            var map1 = new FeedItem<ItemSubject>();
            map1.Title(x => x.Title);

            var map2 = new FeedItem<ItemSubject>();
            map2.Title(x => x.Title2);

            var item1 = new SyndicationItem();
            map1.As<IFeedItem<ItemSubject>>().ConfigureItem(item1, target);
            item1.Title.Text.ShouldEqual(subject.Title);


            var item2 = new SyndicationItem();
            map2.As<IFeedItem<ItemSubject>>().ConfigureItem(item2, target);
            item2.Title.Text.ShouldEqual(subject.Title2);

        }
Exemple #4
0
        public void ShallowBound()
        {
            SimpleValues simple = new SimpleValues();
            var          binder = new Binder <SimpleValues>();

            Assert.AreEqual(false, binder.DeeplyBound);
        }
        public void SetUp()
        {
            theSubject = new Site(){Name = "my site", Id = Guid.NewGuid()};
            theUrls = new ValidStubUrlRegistry();
            theTarget = new SimpleValues<Site>(theSubject);

            theLinks = new LinksSource<Site>();
        }
Exemple #6
0
            /// <summary>
            /// Adds a simple value to the map.
            /// </summary>
            /// <param name="value">The simple value.</param>
            /// <returns>Whether or not the value was successfully added.</returns>
            private bool AddSimpleValue(SimpleValues value)
            {
                if (((int)this.simpleValues & (int)value) == 0)
                {
                    this.simpleValues = (SimpleValues)((int)this.simpleValues | (int)value);
                    return(true);
                }

                return(false);
            }
        public void SetUp()
        {
            theAccessorProjection = AccessorProjection<ValueTarget, int>.For(x => x.Age);
            _theValues = new SimpleValues<ValueTarget>(new ValueTarget
            {
                Age = 37
            });

            theMediaNode = XmlAttCentricMediaNode.ForRoot("root");
        }
Exemple #8
0
            private UnorderdDistinctMap(
                HashSet <Number64> numbers,
                HashSet <uint> stringsLength4,
                HashSet <ulong> stringsLength8,
                HashSet <UInt128> stringsLength16,
                HashSet <UInt128> stringsLength16Plus,
                HashSet <UInt128> arrays,
                HashSet <UInt128> objects,
                SimpleValues simpleValues)
            {
                if (numbers == null)
                {
                    throw new ArgumentNullException(nameof(numbers));
                }

                if (stringsLength4 == null)
                {
                    throw new ArgumentNullException(nameof(stringsLength4));
                }

                if (stringsLength8 == null)
                {
                    throw new ArgumentNullException(nameof(stringsLength8));
                }

                if (stringsLength16 == null)
                {
                    throw new ArgumentNullException(nameof(stringsLength16));
                }

                if (stringsLength16Plus == null)
                {
                    throw new ArgumentNullException(nameof(stringsLength16Plus));
                }

                if (arrays == null)
                {
                    throw new ArgumentNullException(nameof(arrays));
                }

                if (objects == null)
                {
                    throw new ArgumentNullException(nameof(objects));
                }

                this.utf8Buffer          = new byte[UnorderdDistinctMap.UInt128Length];
                this.numbers             = numbers;
                this.stringsLength4      = stringsLength4;
                this.stringsLength8      = stringsLength8;
                this.stringsLength16     = stringsLength16;
                this.stringsLength16Plus = stringsLength16Plus;
                this.arrays       = arrays;
                this.objects      = objects;
                this.simpleValues = simpleValues;
            }
Exemple #9
0
        public async Task BinderSetFunctionInvocation()
        {
            var code      = "set-value-integer(57)";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues();
            var binder    = new Binder <SimpleValues>();
            var result    = await function(ctx, binder);

            Assert.AreEqual(57, ctx.ValueInteger);
        }
Exemple #10
0
        public void SetUp()
        {
            theSubject = new Site()
            {
                Name = "my site", Id = Guid.NewGuid()
            };
            theUrls   = new ValidStubUrlRegistry();
            theTarget = new SimpleValues <Site>(theSubject);

            theLinks = new LinksSource <Site>();
        }
Exemple #11
0
        public void SetUp()
        {
            theAccessorProjection = AccessorProjection <ValueTarget> .For(x => x.Age);

            _theValues = new SimpleValues <ValueTarget>(new ValueTarget
            {
                Age = 37
            });

            theMediaNode = XmlAttCentricMediaNode.ForRoot("root");
        }
        public void SetUp()
        {
            anAddress = new Address{
                Line1 = "22 Cherry Lane",
                City = "Austin",
                State = "TX",
                ZipCode = "78703"
            };

            aTarget = new SimpleValues<Address>(anAddress);
            aNode = XmlAttCentricMediaNode.ForRoot("root");
        }
Exemple #13
0
        public void SetUp()
        {
            anAddress = new Address {
                Line1   = "22 Cherry Lane",
                City    = "Austin",
                State   = "TX",
                ZipCode = "78703"
            };

            aTarget = new SimpleValues <Address>(anAddress);
            aNode   = XmlAttCentricMediaNode.ForRoot("root");
        }
        public void configure_item_when_using_an_externally_defined_feed_item()
        {
            theFeed.UseItems <ItemSubjectMap>();
            var values = new SimpleValues <ItemSubject>(new ItemSubject()
            {
                Title = "Something"
            });

            theDefinition.ConfigureItem(aSyndicationItem, values);

            aSyndicationItem.Title.Text.ShouldEqual("Something");
        }
Exemple #15
0
        public void retrieve_value_by_accessor()
        {
            var target = new SimpleValues<SimpleClass>(new SimpleClass{
                Age = 37,
                Name = "Jeremy"
            });

            var ageAccessor = ReflectionHelper.GetAccessor<SimpleClass>(x => x.Age);
            var nameAccessor = ReflectionHelper.GetAccessor<SimpleClass>(x => x.Name);

            target.ValueFor(ageAccessor).ShouldEqual(37);
            target.ValueFor(nameAccessor).ShouldEqual("Jeremy");
        }
        public void retrieve_value_by_accessor()
        {
            var target = new SimpleValues <SimpleClass>(new SimpleClass {
                Age  = 37,
                Name = "Jeremy"
            });

            var ageAccessor  = ReflectionHelper.GetAccessor <SimpleClass>(x => x.Age);
            var nameAccessor = ReflectionHelper.GetAccessor <SimpleClass>(x => x.Name);

            target.ValueFor(ageAccessor).ShouldEqual(37);
            target.ValueFor(nameAccessor).ShouldEqual("Jeremy");
        }
        public void configure_items_when_the_item_map_is_definied_inline()
        {
            theFeed.Items.Title(o => o.Title);

            var values = new SimpleValues <ItemSubject>(new ItemSubject()
            {
                Title = "Else"
            });

            theDefinition.ConfigureItem(aSyndicationItem, values);

            aSyndicationItem.Title.Text.ShouldEqual("Else");
        }
Exemple #18
0
        public async Task BinderGetFunctionInvocation()
        {
            var code      = "get-constant-integer()";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues()
            {
                ValueInteger = 57
            };
            var binder = new Binder <SimpleValues>();
            var result = await function(ctx, binder);

            Assert.AreEqual(57, result);
        }
Exemple #19
0
        public void BinderMultipleSetFunctionInvocations()
        {
            var code      = @"
set-value-integer(57)
set-value-integer(67)";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues();
            var binder    = new Binder <SimpleValues>();
            var result    = function(ctx, binder);

            Assert.IsNull(result);
            Assert.AreEqual(67, ctx.ValueInteger);
        }
Exemple #20
0
        public void set_the_id_1()
        {
            var subject = new ItemSubject{
                Id = "001"
            };

            var target = new SimpleValues<ItemSubject>(subject);

            var map = new FeedItem<ItemSubject>(x => x.Id(o => o.Id));

            var item = new SyndicationItem();
            map.As<IFeedItem<ItemSubject>>().ConfigureItem(item, target);

            item.Id.ShouldEqual("001");
        }
Exemple #21
0
        public void modify_with_null_ignores_it()
        {
            var subject = new ItemSubject {
                Title = null
            };
            var target = new SimpleValues <ItemSubject>(subject);
            var item   = new SyndicationItem();

            var map = new FeedItem <ItemSubject>().As <IFeedItem <ItemSubject> >();

            map.ModifyItem(x => x.Title, (syn, val) => syn.Content = val.ToContent());
            map.ConfigureItem(item, target);

            item.Content.ShouldBeNull();
        }
Exemple #22
0
        public async Task BinderNestedFunctionGetAndSetInvocations()
        {
            var code      = "set-value-string(get-constant-integer())";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues()
            {
                ValueInteger = 57
            };
            var binder = new Binder <SimpleValues>();
            var result = await function(ctx, binder);

            Assert.IsNull(result);
            Assert.AreEqual("57", ctx.ValueString);
        }
Exemple #23
0
        public void modify_sets_property()
        {
            var subject = new ItemSubject {
                Title = "Monty Python"
            };
            var target = new SimpleValues <ItemSubject>(subject);
            var item   = new SyndicationItem();

            var map = new FeedItem <ItemSubject>().As <IFeedItem <ItemSubject> >();

            map.ModifyItem(x => x.Title, (syn, val) => syn.Content = val.ToContent());
            map.ConfigureItem(item, target);

            item.Content.As <TextSyndicationContent>().Text
            .ShouldEqual(subject.Title);
        }
        public void set_the_title_item_title_is_null_so_ignore_it()
        {
            var subject = new ItemSubject()
            {
                Title = null
            };

            var target = new SimpleValues<ItemSubject>(subject);

            var map1 = new FeedItem<ItemSubject>();
            map1.Title(x => x.Title);

            var item1 = new SyndicationItem();
            map1.As<IFeedItem<ItemSubject>>().ConfigureItem(item1, target);
            item1.Title.ShouldBeNull();
        }
Exemple #25
0
        public void set_the_id_1()
        {
            var subject = new ItemSubject {
                Id = "001"
            };

            var target = new SimpleValues <ItemSubject>(subject);

            var map = new FeedItem <ItemSubject>(x => x.Id(o => o.Id));

            var item = new SyndicationItem();

            map.As <IFeedItem <ItemSubject> >().ConfigureItem(item, target);

            item.Id.ShouldEqual("001");
        }
Exemple #26
0
        public async Task BinderTwoNestedFunctionInvocationArguments()
        {
            var code      = @"
        add-integers(get-constant-integer(), get-value-integer())
        ";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues()
            {
                ValueInteger = 10
            };
            var binder = new Binder <SimpleValues>();
            var result = await function(ctx, binder);

            Assert.IsNull(result);
            Assert.AreEqual(67, ctx.ValueInteger);
        }
Exemple #27
0
        public void set_the_updated()
        {
            var subject = new ItemSubject
            {
                Number  = 333,
                Updated = DateTime.Today.AddDays(-3)
            };

            var target = new SimpleValues <ItemSubject>(subject);

            var map = new FeedItem <ItemSubject>(x => x.UpdatedByProperty(o => o.Updated));

            var item = new SyndicationItem();

            map.As <IFeedItem <ItemSubject> >().ConfigureItem(item, target);

            item.LastUpdatedTime.Date.ShouldEqual(subject.Updated.Date);
        }
Exemple #28
0
        public void set_the_title_item_title_is_null_so_ignore_it()
        {
            var subject = new ItemSubject()
            {
                Title = null
            };

            var target = new SimpleValues <ItemSubject>(subject);

            var map1 = new FeedItem <ItemSubject>();

            map1.Title(x => x.Title);

            var item1 = new SyndicationItem();

            map1.As <IFeedItem <ItemSubject> >().ConfigureItem(item1, target);
            item1.Title.ShouldBeNull();
        }
Exemple #29
0
 private UnorderdDistinctMap(
     HashSet <Number64> numbers,
     HashSet <uint> stringsLength4,
     HashSet <ulong> stringsLength8,
     HashSet <UInt128> stringsLength16,
     HashSet <UInt128> stringsLength16Plus,
     HashSet <UInt128> arrays,
     HashSet <UInt128> objects,
     SimpleValues simpleValues)
 {
     this.numbers             = numbers ?? throw new ArgumentNullException(nameof(numbers));
     this.stringsLength4      = stringsLength4 ?? throw new ArgumentNullException(nameof(stringsLength4));
     this.stringsLength8      = stringsLength8 ?? throw new ArgumentNullException(nameof(stringsLength8));
     this.stringsLength16     = stringsLength16 ?? throw new ArgumentNullException(nameof(stringsLength16));
     this.stringsLength16Plus = stringsLength16Plus ?? throw new ArgumentNullException(nameof(stringsLength16Plus));
     this.arrays       = arrays ?? throw new ArgumentNullException(nameof(arrays));
     this.objects      = objects ?? throw new ArgumentNullException(nameof(objects));
     this.simpleValues = simpleValues;
 }
Exemple #30
0
        public async Task BinderComplexInvocation()
        {
            var code      = @"
        set-value-string(""2"")
        set-value-integer(2)
        add-integers(
          get-constant-integer(), 
          8, 
          get-value-integer(), 
          6, 
          mirror(
            get-value-integer()), 
          get-value-string())
        ";
            var tokenizer = new Tokenizer(new LizzieTokenizer());
            var function  = Compiler.Compile <SimpleValues>(tokenizer, code);
            var ctx       = new SimpleValues();
            var binder    = new Binder <SimpleValues>();
            var result    = await function(ctx, binder);

            Assert.IsNull(result);
            Assert.AreEqual(77, ctx.ValueInteger);
        }
Exemple #31
0
 public void SetUp()
 {
     theSubject = new Site();
     theTarget = new SimpleValues<Site>(theSubject);
     theUrls = new StubUrlRegistry();
 }
Exemple #32
0
 public static bool Test(SimpleValues obj, int?value) => value.HasValue && obj.Int == value;
Exemple #33
0
        public void set_the_updated()
        {
            var subject = new ItemSubject
            {
                Number = 333,
                Updated = DateTime.Today.AddDays(-3)
            };

            var target = new SimpleValues<ItemSubject>(subject);

            var map = new FeedItem<ItemSubject>(x => x.UpdatedByProperty(o => o.Updated));

            var item = new SyndicationItem();
            map.As<IFeedItem<ItemSubject>>().ConfigureItem(item, target);

            item.LastUpdatedTime.Date.ShouldEqual(subject.Updated.Date);
        }
Exemple #34
0
 public static bool Test(SimpleValues obj, double?value) => value.HasValue && obj.Double == value;
Exemple #35
0
 public static bool Test(SimpleValues obj, string value) => value != null && obj.String == value;
Exemple #36
0
            public static TryCatch <DistinctMap> TryCreate(string continuationToken)
            {
                HashSet <Number64> numbers             = new HashSet <Number64>();
                HashSet <uint>     stringsLength4      = new HashSet <uint>();
                HashSet <ulong>    stringsLength8      = new HashSet <ulong>();
                HashSet <UInt128>  stringsLength16     = new HashSet <UInt128>();
                HashSet <UInt128>  stringsLength16Plus = new HashSet <UInt128>();
                HashSet <UInt128>  arrays       = new HashSet <UInt128>();
                HashSet <UInt128>  objects      = new HashSet <UInt128>();
                SimpleValues       simpleValues = SimpleValues.None;

                if (continuationToken != null)
                {
                    byte[]        binaryBuffer  = Convert.FromBase64String(continuationToken);
                    CosmosElement cosmosElement = CosmosElement.CreateFromBuffer(binaryBuffer);
                    if (!(cosmosElement is CosmosObject hashDictionary))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }

                    // Numbers
                    if (!hashDictionary.TryGetValue(UnorderdDistinctMap.NumbersName, out CosmosArray numbersArray))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }

                    foreach (CosmosElement rawNumber in numbersArray)
                    {
                        if (!(rawNumber is CosmosNumber64 number))
                        {
                            return(TryCatch <DistinctMap> .FromException(
                                       new MalformedContinuationTokenException(
                                           $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                        }

                        numbers.Add(number.GetValue());
                    }

                    // Strings Length 4
                    if (!hashDictionary.TryGetValue(UnorderdDistinctMap.StringsLength4Name, out CosmosArray stringsLength4Array))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }

                    foreach (CosmosElement rawStringLength4 in stringsLength4Array)
                    {
                        if (!(rawStringLength4 is CosmosUInt32 stringlength4))
                        {
                            return(TryCatch <DistinctMap> .FromException(
                                       new MalformedContinuationTokenException(
                                           $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                        }

                        stringsLength4.Add(stringlength4.GetValue());
                    }

                    // Strings Length 8
                    if (!hashDictionary.TryGetValue(UnorderdDistinctMap.StringsLength8Name, out CosmosArray stringsLength8Array))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }

                    foreach (CosmosElement rawStringLength8 in stringsLength8Array)
                    {
                        if (!(rawStringLength8 is CosmosInt64 stringlength8))
                        {
                            return(TryCatch <DistinctMap> .FromException(
                                       new MalformedContinuationTokenException(
                                           $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                        }

                        stringsLength8.Add((ulong)stringlength8.GetValue());
                    }

                    // Strings Length 16
                    stringsLength16 = Parse128BitHashes(hashDictionary, UnorderdDistinctMap.StringsLength16Name);

                    // Strings Length 24
                    stringsLength16Plus = Parse128BitHashes(hashDictionary, UnorderdDistinctMap.StringsLength16PlusName);

                    // Array
                    arrays = Parse128BitHashes(hashDictionary, UnorderdDistinctMap.ArraysName);

                    // Object
                    objects = Parse128BitHashes(hashDictionary, UnorderdDistinctMap.ObjectName);

                    // Simple Values
                    CosmosElement rawSimpleValues = hashDictionary[UnorderdDistinctMap.SimpleValuesName];
                    if (!(rawSimpleValues is CosmosString simpleValuesString))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }

                    if (!Enum.TryParse <SimpleValues>(simpleValuesString.Value, out simpleValues))
                    {
                        return(TryCatch <DistinctMap> .FromException(
                                   new MalformedContinuationTokenException(
                                       $"{nameof(UnorderdDistinctMap)} continuation token was malformed.")));
                    }
                }

                return(TryCatch <DistinctMap> .FromResult(new UnorderdDistinctMap(
                                                              numbers,
                                                              stringsLength4,
                                                              stringsLength8,
                                                              stringsLength16,
                                                              stringsLength16Plus,
                                                              arrays,
                                                              objects,
                                                              simpleValues)));
            }
Exemple #37
0
 public static bool Test(SimpleValues obj, object other) => other != null && obj.Object.Equals(other);
        public void modify_sets_property()
        {
            var subject = new ItemSubject { Title = "Monty Python" };
            var target = new SimpleValues<ItemSubject>(subject);
            var item = new SyndicationItem();

            var map = new FeedItem<ItemSubject>().As<IFeedItem<ItemSubject>>();
            map.ModifyItem(x => x.Title, (syn, val) => syn.Content = val.ToContent());
            map.ConfigureItem(item, target);

            item.Content.As<TextSyndicationContent>().Text
                .ShouldEqual(subject.Title);
        }
        public void modify_with_null_ignores_it()
        {
            var subject = new ItemSubject { Title = null };
            var target = new SimpleValues<ItemSubject>(subject);
            var item = new SyndicationItem();

            var map = new FeedItem<ItemSubject>().As<IFeedItem<ItemSubject>>();
            map.ModifyItem(x => x.Title, (syn, val) => syn.Content = val.ToContent());
            map.ConfigureItem(item, target);

            item.Content.ShouldBeNull();            
        }
Exemple #40
0
 public bool Test(SimpleValues value) => Int == value.Int && Double == value.Double && String == value.String && Object.Equals(value.Object);
 public void SetUp()
 {
     theSubject = new Site();
     theTarget  = new SimpleValues <Site>(theSubject);
     theUrls    = new StubUrlRegistry();
 }