示例#1
0
        private async void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)
        {
            var meta = new TestMetaData
            {
                IsLastShuttle = Current == Last,
                IsCompleted   = Current == null && Next == null,
                NextShuttle   = Next != null ? Next.StartTime : Current.StartTime,
                TotalTime     = CurrentTime,
                TotalDistance = Current.AccumulatedShuttleDistance,
                Level         = Current.SpeedLevel,
                Shuttle       = Current.ShuttleNo,
                Speed         = Current.Speed,
                //Progress = _progress,
                Athletes = Athletes
            };

            byte[] bytes;
            var    obj  = meta;
            var    data = JsonConvert.SerializeObject(obj, Formatting.Indented);

            bytes = Encoding.ASCII.GetBytes(data);
            var arraySegment = new ArraySegment <byte>(bytes);

            await this.WebSocket.SendAsync(arraySegment, WebSocketMessageType.Text, true, CancellationToken.None);
        }
示例#2
0
        public void HasMetaDataProperty()
        {
            object dataContext = GetDataContext(TestMetaData.CreateEmptyClassMetaInfo());
            var    metaData    = GetMetaDataProperty(dataContext);

            Assert.IsNotNull(metaData);
        }
示例#3
0
        public void HasIndexingState()
        {
            var     originalMetaData = TestMetaData.CreateSingleFieldClass();
            dynamic metaData         = MetaClassInfo(originalMetaData);

            Assert.AreEqual("data (Index: Unknown)", metaData.SingleField.data);
        }
示例#4
0
        private Type SingleTypeQueryContext()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();
            var infos    = NewTestInstance(metaInfo);

            return(infos.DataContext);
        }
        public void DoesNotAddArrayTypes()
        {
            var meta = TestMetaData.CreateClassWithArrayField();
            var db   = Configure(DatabaseMetaInfo.Create(meta, TestUtils.NewName()));

            Assert.NotNull(db);
        }
示例#6
0
        public void GenericEquals()
        {
            var t1 = TestMetaData.CreateGenericType();
            var t2 = TestMetaData.CreateGenericType();

            Assert.AreEqual(t1, t2);
        }
示例#7
0
        public void SameNameDifferentAssembly()
        {
            var typeInfos = TestMetaData.SameNameDifferentAssembly();
            var result    = CodeGenerator.Create(typeInfos, TestUtils.NewName());

            Assert.AreEqual(2, result.Types.Count);
        }
示例#8
0
        private static IEnumerable <ITypeDescription> CircularType()
        {
            var type = SimpleClassDescription.Create(TestMetaData.SingleFieldType(),
                                                     TestMetaData.CreateField);

            return(new ITypeDescription[] { type });
        }
示例#9
0
        public void GenerateEmptyClass()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();

            var type = GenerateSingle(metaInfo);

            Assert.IsTrue(type.Name.StartsWith(metaInfo.Single().Name));
        }
示例#10
0
        public void NoContextForArrayTypes()
        {
            var metaInfo   = TestMetaData.CreateClassWithArrayField();
            var infos      = NewTestInstance(metaInfo);
            var properties = AllPropertiesExceptMetaData(infos);

            Assert.AreEqual(1, properties.Count());
        }
示例#11
0
        internal static IEnumerable <ITypeDescription> TypeWithGenericList()
        {
            var stringList = KnownType.Create(typeof(List <string>));
            var type       = SimpleClassDescription.Create(TestMetaData.SingleFieldType(),
                                                           f => TestMetaData.CreateField(stringList));

            return(new[] { type, stringList });
        }
示例#12
0
        public void HasMetaDataForConflictingTypes()
        {
            var     originalMetaData = TestMetaData.CreateNameConflicMetaInfo();
            dynamic metaData         = MetaClassInfo(originalMetaData);

            Assert.NotNull(metaData.ANamespace.EmptyClass);
            Assert.NotNull(metaData.ANamespace.OtherNamespace.EmptyClass);
        }
示例#13
0
        private IEnumerable <ITypeDescription> CreateSingleIntFieldClass()
        {
            var stringType = KnownType.Create(typeof(int));
            var type       = SimpleClassDescription.Create(TestMetaData.SingleFieldType(),
                                                           f => TestMetaData.CreateField(stringType));

            return(new[] { type, stringType });
        }
示例#14
0
        public void GenericNameWithTwoParams()
        {
            var complex = TestMetaData.CreateGenericType(
                TypeName.Create("System.Int32", "mscorelib"), TypeName.Create("System.Int64", "mscorelib"));

            Assert.AreEqual("TheType_2_Int32_Int64",
                            complex.Name);
        }
示例#15
0
        public void CanInstantiateGenericWithClass()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();

            var type        = GenerateSingle(metaInfo);
            var genericList = typeof(List <>).MakeGenericType(type);
            var list        = genericList.GetConstructor(new Type[0]).Invoke(new object[0]);
        }
示例#16
0
        public void HasNames()
        {
            var     originalMetaData = TestMetaData.CreateEmptyClassMetaInfo();
            dynamic metaData         = MetaClassInfo(originalMetaData);

            Assert.AreEqual("EmptyClass", metaData.EmptyClass.ClassName);
            Assert.AreEqual(originalMetaData.Single().TypeName.FullName, metaData.EmptyClass.ClassFullName);
        }
示例#17
0
        public void ArrayOfGeneratedType()
        {
            var simpleType    = TestMetaData.CreateEmptyClassMetaInfo();
            var code          = CodeGenerator.Create(simpleType, TestUtils.NewName());
            var generatedType = code.Types[simpleType.Single()];
            var type          = generatedType.MakeArrayType();

            Assert.IsTrue(type.AssemblyQualifiedName.Contains("[]"));
        }
示例#18
0
        public void CascadedGenericsName()
        {
            var theType = TestMetaData.CreateGenericType();
            var complex = TestMetaData.CreateGenericType(
                TypeName.Create("System.Int32", "mscorelib"), theType.TypeName);

            Assert.AreEqual("TheType_2_Int32_TheType_1_Int32",
                            complex.Name);
        }
示例#19
0
        public void CanInstantiateClass()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();

            var type     = GenerateSingle(metaInfo);
            var instance = CreateInstance(type);

            Assert.NotNull(instance);
        }
示例#20
0
        public void GetsGenericTypeFromCurrentAssembly()
        {
            var dynamicType     = new [] { TestMetaData.CreateGenericType() };
            var dynamicAssembly = CodeGenerator.Create(dynamicType, TestUtils.NewName());
            var typeToFind      = dynamicAssembly.Types[dynamicType.Single(t => t.IsBusinessEntity)];
            var found           = TypeLoader.Create(new string[0])(TypeNameParser.ParseString(ReflectPlatform.FullyQualifiedName(typeToFind)));

            Assert.AreEqual(typeToFind, found.Value);
        }
示例#21
0
        public void ResolvesGenericParameters()
        {
            var otherType    = TestMetaData.CreateEmptyClassMetaInfo();
            var theType      = KnownType.Create(typeof(System.Collections.Generic.List <>), otherType);
            var resovledType = theType.TryResolveType(t => typeof(string));

            Assert.AreEqual(typeof(System.Collections.Generic.List <string>), resovledType.Value);
            Assert.IsTrue(theType.TypeName.FullName.StartsWith("System.Collections.Generic.List"));
        }
示例#22
0
        public void HasAssembly()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();

            var name  = TestUtils.NewName();
            var infos = CodeGenerator.Create(metaInfo, name);

            Assert.IsTrue(File.Exists(name.CodeBase));
        }
示例#23
0
        public void CanInstantiateClassWithSingleField()
        {
            var metaInfo = TestMetaData.CreateSingleFieldClass();
            var type     = ExtractSingleFieldType(metaInfo);

            Assert.IsTrue(type.Name.StartsWith(SingleFieldMeta(metaInfo).Name));
            dynamic instance = CreateInstance(type);

            AssertFieldCanBeSet(instance, "newData");
        }
示例#24
0
        public void CanCreateTypeMultipleTimes()
        {
            var metaInfo = TestMetaData.CreateEmptyClassMetaInfo();

            var type1 = SingleNotObject(metaInfo);
            var type2 = SingleNotObject(metaInfo);

            Assert.NotNull(type1);
            Assert.NotNull(type2);
        }
示例#25
0
        public void HasFields()
        {
            var     originalMetaData = TestMetaData.CreateSingleFieldClass();
            dynamic metaData         = MetaClassInfo(originalMetaData);
            object  meta2            = metaData;

            Console.Out.WriteLine(meta2);
            Assert.IsNotNull(metaData.SingleField);
            Assert.IsNotNull(metaData.SingleField.data);
        }
示例#26
0
        public void CreateMixedGenericInstance()
        {
            var metaInfo = TestMetaData.CreateClassListGenericOf(TestMetaData.CreateEmptyClassMetaInfo().First());

            var types        = NewTestInstance(metaInfo);
            var genericTypes = types.Types[metaInfo.First()];
            var fields       = genericTypes.GetFields();

            Assert.AreEqual(typeof(List <>), fields.Single().FieldType.GetGenericTypeDefinition());
        }
示例#27
0
        public void ArraysAreLowerBoundZero()
        {
            var arrayType = TestMetaData.CreateEmptyClassMetaInfo().Single();
            var metaInfo  = SimpleClassDescription.Create(TestMetaData.SingleFieldType(),
                                                          f => TestMetaData.CreateArrayField(arrayType));
            var type      = ExtractSingleFieldType(new[] { metaInfo });
            var fieldType = type.GetField("data").FieldType;

            Assert.IsTrue(fieldType.AssemblyQualifiedName.Contains("[]"));
        }
示例#28
0
        public void HasPublicGetterForLowerCaseBeginners()
        {
            var metaInfo = TestMetaData.CreateSingleFieldClass();
            var type     = ExtractSingleFieldType(metaInfo);

            Assert.IsTrue(type.Name.StartsWith(SingleFieldMeta(metaInfo).Name));
            dynamic instance = CreateInstance(type);

            instance.Data = "newData";
            Assert.AreEqual("newData", instance.Data);
        }
示例#29
0
        private IEnumerable <ITypeDescription> SubClassType()
        {
            var baseClasses = TestMetaData.CreateSingleFieldClass();
            var intType     = KnownType.Create(typeof(int));
            var baseClass   = baseClasses.Single(b => !b.TryResolveType(TestUtils.FindNothingTypeResolver).HasValue);
            var subType     = SimpleClassDescription.Create(
                TypeName.Create("ANamespace.SubClass", TestMetaData.AssemblyName), Maybe.From(baseClass),
                f => TestMetaData.CreateField("subField", intType));

            return(baseClasses.Concat(new[] { intType, subType }));
        }
示例#30
0
        public void DoesAddPartialGenerics()
        {
            var meta = TestMetaData.CreateClassListGenericOf(TestMetaData.CreateEmptyClassMetaInfo().Single());
            var db   = Configure(DatabaseMetaInfo.Create(meta, TestUtils.NewName()));
            var typeWithGenericField = meta.First();
            var fieldType            = typeWithGenericField.Fields.Single();
            var typeInfo             = db.Ext().Reflector().ForName(fieldType.Type.TypeName.FullName);

            Assert.NotNull(typeInfo);
            Assert.IsTrue(typeInfo.GetName().StartsWith("System.Collections.Generic.List`1[[ANamespace"));
        }