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); }
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); }
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>(); }
/// <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"); }
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; }
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); }
public void SetUp() { theSubject = new Site() { Name = "my site", Id = Guid.NewGuid() }; theUrls = new ValidStubUrlRegistry(); theTarget = new SimpleValues <Site>(theSubject); theLinks = new LinksSource <Site>(); }
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"); }
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"); }
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"); }
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); }
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); }
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"); }
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(); }
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); }
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(); }
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"); }
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); }
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); }
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(); }
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; }
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); }
public void SetUp() { theSubject = new Site(); theTarget = new SimpleValues<Site>(theSubject); theUrls = new StubUrlRegistry(); }
public static bool Test(SimpleValues obj, int?value) => value.HasValue && obj.Int == value;
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); }
public static bool Test(SimpleValues obj, double?value) => value.HasValue && obj.Double == value;
public static bool Test(SimpleValues obj, string value) => value != null && obj.String == value;
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))); }
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(); }
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(); }