예제 #1
0
        public void Serialization_Valid()
        {
            Project p = CreateEmptyProject();

            FrameworkInfoDictionary frameworks = p.Frameworks;
            BinaryFormatter         bf         = new BinaryFormatter();

            foreach (FrameworkInfo framework in frameworks)
            {
                if (!framework.IsValid)
                {
                    continue;
                }

                MemoryStream ms = new MemoryStream();

                bf.Serialize(ms, framework);
                ms.Position = 0;
                FrameworkInfo df = (FrameworkInfo)bf.Deserialize(ms);

                Assert.IsNotNull(framework.ClrVersion, "#1");
                Assert.AreEqual(framework.ClrVersion, df.ClrVersion, "#2");
                Assert.IsNotNull(framework.Description, "#3");
                Assert.AreEqual(framework.Description, df.Description, "#4");
                Assert.IsNotNull(framework.Family, "#5");
                Assert.AreEqual(framework.Family, df.Family, "#6");
                Assert.IsNotNull(framework.FrameworkAssemblyDirectory, "#7");
                Assert.IsNotNull(df.FrameworkAssemblyDirectory, "#8");
                Assert.AreEqual(framework.FrameworkAssemblyDirectory.FullName,
                                df.FrameworkAssemblyDirectory.FullName, "#9");
                Assert.IsNotNull(framework.FrameworkDirectory, "#10");
                Assert.IsNotNull(df.FrameworkDirectory, "#11");
                Assert.AreEqual(framework.FrameworkDirectory.FullName,
                                df.FrameworkDirectory.FullName, "#12");
                Assert.IsNotNull(framework.Name, "#13");
                Assert.AreEqual(framework.Name, df.Name, "#14");
                Assert.IsNotNull(framework.Project, "#15");
                Assert.IsNotNull(df.Project, "#16");

                if (framework.SdkDirectory != null)
                {
                    Assert.IsNotNull(df.SdkDirectory, "#18");
                    Assert.AreEqual(framework.SdkDirectory.FullName,
                                    df.SdkDirectory.FullName, "#19");
                }
                else
                {
                    Assert.IsNull(df.SdkDirectory, "#18");
                }

                Assert.IsNotNull(framework.TaskAssemblies, "#20");
                Assert.IsNotNull(df.TaskAssemblies, "#21");
                Assert.IsNotNull(framework.TaskAssemblies.BaseDirectory, "#22");
                Assert.IsNotNull(df.TaskAssemblies.BaseDirectory, "#23");
                Assert.AreEqual(framework.TaskAssemblies.BaseDirectory.FullName,
                                df.TaskAssemblies.BaseDirectory.FullName, "#24");
                Assert.AreEqual(framework.TaskAssemblies.FileNames.Count,
                                df.TaskAssemblies.FileNames.Count, "#25");

                Assert.IsNotNull(framework.Version, "#26");
                Assert.AreEqual(framework.Version, df.Version, "#27");
            }
        }
예제 #2
0
        public void Serialization_Invalid()
        {
            Project p = CreateEmptyProject();

            FrameworkInfoDictionary frameworks = p.Frameworks;
            BinaryFormatter         bf         = new BinaryFormatter();

            foreach (FrameworkInfo framework in frameworks)
            {
                if (framework.IsValid)
                {
                    continue;
                }

                MemoryStream ms = new MemoryStream();

                bf.Serialize(ms, framework);
                ms.Position = 0;
                FrameworkInfo df = (FrameworkInfo)bf.Deserialize(ms);

                Assert.IsNotNull(framework.Description, "#A1");
                Assert.AreEqual(framework.Description, df.Description, "#A2");
                Assert.IsNotNull(framework.Family, "#A3");
                Assert.AreEqual(framework.Family, df.Family, "#A4");
                Assert.IsNotNull(framework.Name, "#A5");
                Assert.AreEqual(framework.Name, df.Name, "#A6");
                Assert.IsNotNull(framework.ClrVersion, "#A7");
                Assert.AreEqual(framework.ClrVersion, df.ClrVersion, "#A8");
                Assert.IsNotNull(framework.Version, "#A7");
                Assert.AreEqual(framework.Version, df.Version, "#A8");
                Assert.IsTrue(Enum.IsDefined(typeof(ClrType), framework.ClrType), "#A9");
                Assert.AreEqual(framework.ClrType, df.ClrType, "#A10");
                Assert.IsNotNull(framework.VisualStudioVersion, "#A11");

                try {
                    object x = df.FrameworkAssemblyDirectory;
                    Assert.Fail("#C1:" + x);
                } catch (ArgumentException ex) {
                    // The current framework is not valid
                    Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#C2");
                    Assert.IsNull(ex.InnerException, "#C3");
                    Assert.IsNotNull(ex.Message, "#C4");
                    Assert.IsNull(ex.ParamName, "#C5");
                }

                try {
                    object x = df.FrameworkDirectory;
                    Assert.Fail("#D1:" + x);
                } catch (ArgumentException ex) {
                    // The current framework is not valid
                    Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#D2");
                    Assert.IsNull(ex.InnerException, "#D3");
                    Assert.IsNotNull(ex.Message, "#D4");
                    Assert.IsNull(ex.ParamName, "#D5");
                }

                try {
                    object x = df.Project;
                    Assert.Fail("#E1:" + x);
                } catch (ArgumentException ex) {
                    // The current framework is not valid
                    Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#E2");
                    Assert.IsNull(ex.InnerException, "#E3");
                    Assert.IsNotNull(ex.Message, "#E4");
                    Assert.IsNull(ex.ParamName, "#E5");
                }

                try {
                    object x = df.SdkDirectory;
                    Assert.Fail("#F1" + x);
                } catch (ArgumentException ex) {
                    // The current framework is not valid
                    Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#F2");
                    Assert.IsNull(ex.InnerException, "#F3");
                    Assert.IsNotNull(ex.Message, "#F4");
                    Assert.IsNull(ex.ParamName, "#F5");
                }

                try {
                    object x = df.TaskAssemblies;
                    Assert.Fail("#G1" + x);
                } catch (ArgumentException ex) {
                    // The current framework is not valid
                    Assert.AreEqual(typeof(ArgumentException), ex.GetType(), "#G2");
                    Assert.IsNull(ex.InnerException, "#G3");
                    Assert.IsNotNull(ex.Message, "#G4");
                    Assert.IsNull(ex.ParamName, "#G5");
                }
            }
        }