//or if you're using your "Static fields" design, you can switch/case on the name
    public static Animal CreateFromSerialized(SerializableAnimal serialized)
    {
        switch (serialized.Name)
        {
        case "Otter":
            return Animal.Otter
        }

        return(null);        //or throw exception
    }
예제 #2
0
        public void Deserialize_ReadsBinaryList()
        {
            //Arrange
            string writePath = System.Reflection.MethodBase.GetCurrentMethod().Name;
            bool   expected  = true;

            //Act
            StandardSerializeBinary(writePath, _expectedAnimalList);

            SerializableAnimal actualAnimal = _animalListDeserializer.Deserialize(writePath, _binary)[0];
            bool actual = equal(_expectedAnimal, actualAnimal);

            WrapUp(writePath);

            //Assert
            Assert.AreEqual(expected, actual);
        }
예제 #3
0
        public void Serial_WritesJSONArray()
        {
            //Arrange
            string writePath = System.Reflection.MethodBase.GetCurrentMethod().Name;
            bool   expected  = true;

            //Act
            _animalListSerializer.SerializeToFile(_expectedAnimalList, _json, writePath);

            SerializableAnimal actualAnimal = StandardDeserializeJson <List <SerializableAnimal> >(writePath)[0];

            bool actual = equal(_expectedAnimal, actualAnimal);

            wrapup(writePath);

            //Assert
            Assert.AreEqual(expected, actual);
        }
 public static Animal CreateFromSerialized(SerializableAnimal serialized)
 {
     return(new Animal(serialized.Name, serialized.Weight, HabitatSerializer.CreateFromSerialized(serialized.Habitat)));
 }