text:
<?php

declare(strict_types = 1);

namespace BrowserDetectorTest\Factory;

use AssertionError;
use BrowserDetector\Factory\BrowserFactory;
use BrowserDetector\Loader\CompanyLoaderInterface;
use BrowserDetector\Loader\NotFoundException;
use BrowserDetector\Version\NotNumericException;
use BrowserDetector\Version\NullVersion;
use BrowserDetector\Version\Test;
use BrowserDetector\Version\TestError;
use BrowserDetector\Version\TestErrorFactory;
use BrowserDetector\Version\TestFactory;
use BrowserDetector\Version\Version;
use BrowserDetector\Version\VersionFactoryInterface;
use BrowserDetector\Version\VersionInterface;
use PHPUnit\Framework\Constraint\IsInstanceOf;
use PHPUnit\Framework\ExpectationFailedException;
use PHPUnit\Framework\TestCase;
use Psr\Log\LoggerInterface;
use SebastianBergmann\RecursionContext\InvalidArgumentException;
use stdClass;
use UaBrowserType\TypeInterface;
use UaBrowserType\TypeLoaderInterface;
use UaBrowserType\Unknown;
use UaResult\Browser\Browser;
use UaResult\Company\CompanyInterface;
use UnexpectedValueException;

final class BrowserFactoryTest extends TestCase
{
    public function testFromEmptyArray(): void
    {
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::never())
            ->method('load');

        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $this->expectException(AssertionError::class);
        $this->expectExceptionMessage('"name" property is required');

        $object->fromArray([], 'this is a test');
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundType(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = '1';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => null, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     */
    public function testFromArrayWithFoundTypeAndVersionString(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $version1       = $this->getMockBuilder(VersionInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $v              = '11.2.1';
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::once())
            ->method('set')
            ->with($v)
            ->willReturn($version1);
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertSame($version1, $result->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndVersionString2(): void
    {
        $exception = new NotNumericException('not numeric');

        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = '11.2.1';
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::once())
            ->method('set')
            ->with($v)
            ->willThrowException($exception);
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::once())
            ->method('error')
            ->with($exception);
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndNullObjectVersion(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->value       = null;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObject(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $version1       = $this->getMockBuilder(VersionInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $v2             = '11.2.1';
        $v              = new stdClass();
        $v->value       = $v2;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::once())
            ->method('set')
            ->with($v2)
            ->willReturn($version1);
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertSame($version1, $result->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObject2(): void
    {
        $exception = new NotNumericException('not numeric');

        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v2             = '11.2.1';
        $v              = new stdClass();
        $v->value       = $v2;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::once())
            ->method('set')
            ->with($v2)
            ->willThrowException($exception);
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::once())
            ->method('error')
            ->with($exception);
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     */
    public function testFromArrayWithFoundTypeAndVersionDetectionClass(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->factory     = TestFactory::class;
        $version2       = $this->getMockBuilder(VersionInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertNotSame($version2, $result->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndVersionDetectionFactory(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->factory     = TestFactory::class;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(Version::class, $result->getVersion());
        self::assertSame('1.11.111.1111.11111', $result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndVersionDetectionFactory2(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->factory     = TestErrorFactory::class;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::once())
            ->method('error')
            ->with(new IsInstanceOf(UnexpectedValueException::class));
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObjectAndNoSearch(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->class       = 'VersionFactory';
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObjectAndNoSearch2(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->class       = Test::class;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(Version::class, $result->getVersion());
        self::assertSame('1.11.111.1111.11111', $result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObjectAndNoSearch3(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $v              = new stdClass();
        $v->class       = TestError::class;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::once())
            ->method('error')
            ->with(new IsInstanceOf(UnexpectedValueException::class));
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => 'unknown', 'version' => $v, 'type' => $typeName, 'bits' => null, 'modus' => null],
            'this is a test'
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObjectAndSearch(): void
    {
        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $version2 = $this->getMockBuilder(VersionInterface::class)
            ->disableOriginalConstructor()
            ->getMock();

        $useragent      = 'this is a test';
        $search         = ['abc'];
        $v              = new stdClass();
        $v->class       = 'VersionFactory';
        $v->search      = $search;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::once())
            ->method('detectVersion')
            ->with($useragent, $search)
            ->willReturn($version2);

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            [
                'name' => null,
                'manufacturer' => 'unknown',
                'version' => $v,
                'type' => $typeName,
                'bits' => null,
                'modus' => null,
            ],
            $useragent
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertSame($version2, $result->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromArrayWithFoundTypeAndFixedVersionObjectAndSearch2(): void
    {
        $exception = new NotNumericException('not numeric');

        $company       = $this->getMockBuilder(CompanyInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with('unknown')
            ->willReturn($company);

        $useragent      = 'this is a test';
        $search         = ['abc'];
        $v              = new stdClass();
        $v->class       = 'VersionFactory';
        $v->search      = $search;
        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::once())
            ->method('detectVersion')
            ->with($useragent, $search)
            ->willThrowException($exception);

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::never())
            ->method('info');
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::once())
            ->method('error')
            ->with($exception);
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            [
                'name' => null,
                'manufacturer' => 'unknown',
                'version' => $v,
                'type' => $typeName,
                'bits' => null,
                'modus' => null,
            ],
            $useragent
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
        self::assertSame($company, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromEmptyArrayWithCompanyError(): void
    {
        $companyName   = 'test-company';
        $useragent     = 'this is a test';
        $exception     = new NotFoundException('failed');
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with($companyName, $useragent)
            ->willThrowException($exception);

        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName   = 'unknown-type';
        $type       = $this->getMockBuilder(TypeInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willReturn($type);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::once())
            ->method('info')
            ->with($exception);
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => $companyName, 'version' => null, 'type' => $typeName, 'bits' => null, 'modus' => null],
            $useragent
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertSame($type, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
    }

    /**
     * @throws InvalidArgumentException
     * @throws ExpectationFailedException
     * @throws UnexpectedValueException
     */
    public function testFromEmptyArrayWithTypeError(): void
    {
        $companyName   = 'test-company';
        $useragent     = 'this is a test';
        $exception     = new NotFoundException('failed');
        $companyLoader = $this->getMockBuilder(CompanyLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $companyLoader
            ->expects(self::once())
            ->method('load')
            ->with($companyName, $useragent)
            ->willThrowException($exception);

        $versionFactory = $this->getMockBuilder(VersionFactoryInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $versionFactory
            ->expects(self::never())
            ->method('set');
        $versionFactory
            ->expects(self::never())
            ->method('detectVersion');

        $typeName     = 'unknown-type';
        $exceptionTwo = new \UaBrowserType\NotFoundException('type not found');
        $typeLoader   = $this->getMockBuilder(TypeLoaderInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $typeLoader
            ->expects(self::once())
            ->method('load')
            ->with($typeName)
            ->willThrowException($exceptionTwo);

        $logger = $this->getMockBuilder(LoggerInterface::class)
            ->disableOriginalConstructor()
            ->getMock();
        $logger
            ->expects(self::never())
            ->method('debug');
        $logger
            ->expects(self::exactly(2))
            ->method('info')
            ->withConsecutive([$exceptionTwo], [$exception]);
        $logger
            ->expects(self::never())
            ->method('notice');
        $logger
            ->expects(self::never())
            ->method('warning');
        $logger
            ->expects(self::never())
            ->method('error');
        $logger
            ->expects(self::never())
            ->method('critical');
        $logger
            ->expects(self::never())
            ->method('alert');
        $logger
            ->expects(self::never())
            ->method('emergency');

        $object = new BrowserFactory($companyLoader, $versionFactory, $typeLoader, $logger);

        $result = $object->fromArray(
            ['name' => null, 'manufacturer' => $companyName, 'version' => null, 'type' => $typeName, 'bits' => null, 'modus' => null],
            $useragent
        );

        self::assertInstanceOf(Browser::class, $result);
        self::assertNull($result->getName());
        self::assertNull($result->getModus());
        self::assertNull($result->getBits());
        self::assertInstanceOf(TypeInterface::class, $result->getType());
        self::assertInstanceOf(Unknown::class, $result->getType());
        self::assertInstanceOf(VersionInterface::class, $result->getVersion());
        self::assertInstanceOf(NullVersion::class, $result->getVersion());
        self::assertNull($result->getVersion()->getVersion());
        self::assertInstanceOf(CompanyInterface::class, $result->getManufacturer());
    }
}


text:
calories in cheddar
cheddar nutrition facts
protein in cheddar
carbs in cheddar
fat in cheddar
sugar in cheddar
sodium in cheddar
potassium in cheddar
saturated fat in cheddar
cholesterol in cheddar
iron in cheddar
fiber in cheddar
calcium in cheddar
zinc in cheddar
vitamin a in cheddar
vitamin c in cheddar
vitamin d in cheddar
vitamin k in cheddar
vitamin b12 in cheddar
vitamin b6 in cheddar
folic acid in cheddar
riboflavin in cheddar
phosphorus in cheddar
niacin in cheddar
thiamine in cheddar
Home / Nutrition / Magnesium / cheddar
Amount of Magnesium in Cheddar
Welcome to the nutritional magnesium content in 7 different types of cheddar, ranging from 36 mg to 16 mg per 100g. The basic type of cheddar is Cheese, cheddar, where the amount of magnesium in 100g is 28 mg.
28 mg of magnesium per 100g, from Cheese, cheddar corresponds to 7% of the magnesium RDA. For a typical serving size of 1 cup, diced (or 132 g) the amount of Magnesium is 36.96 mg. This corresponds to an RDA percentage of 9%.
The percentage of the recommended daily allowance (RDA) for magnesium is based on a 400 mg RDA level for a mature adult.
Top five cheddar products high in magnesium
Below is a summary list for the top five cheddar items ranked by the amount or level of magnesium in 100g.
1. Cheese, pasteurized process, cheddar or American, fat-free : 36mg (9%RDA)
2. Cheese product, pasteurized process, cheddar, reduced fat : 33mg (8%RDA)
3. Cheese, american cheddar, imitation : 29mg (7%RDA)
4. Cheese, cheddar : 28mg (7%RDA)
5. Cheese, low-sodium, cheddar or colby : 27mg (7%RDA)
Following on from the five top cheddar items or products containing magnesium we have a more comprehensive break down of Cheese, cheddar, and the highest item containing magnesium which is Cheese, pasteurized process, cheddar or American, fat-free. We also give a comparison of average values, median values and lowest values along with a comparison with other food groups and assess the effects of storage and preparation on the 7 types of cheddar.
At the bottom of the page is the full list for the 7 different types of cheddar based on the content in different servings in grams and oz (and other serving sizes), providing a comprehensive analysis of the magnesium content in cheddar.
Cheese, cheddar - Nutritional Content and Chart
The full nutrition content, RDA percentages and levels for Cheese, cheddar should be considered along with the magnesium content. This food profile is part of our list of food and drinks under the general group Dairy and Egg Products.Other important and magnesium related nutrients are Calories, Protein, Fat and Carbohydrate. For this 100g serving in your diet, the amount of Calories is 403 kcal (20% RDA), the amount of Protein is 24.9 g (44% RDA), the amount of Fat is 33.14 g (51% RDA) and the amount of Carbohydrate is 1.28 g (1% RDA). The nutritional content and facts for 100g, which includes Calories, Protein, Fat and Carbohydrate is shown in the RDA chart below as percentages of the recommended daily allowance along with the magnesium levels in cheddar.
Our proprietary nutritional density score gives a nutritional value out of 100 based on 9 different vitamins, minerals and macro nutrients. Cheese, cheddar has a nutritional value score of 14 out of 100.Comparing the magnesium content and the nutritional density in 100g for Cheese, cheddar; We class this as a medium to low magnesium content item.In terms of overall nutritional value we class this as an item with a medium nutritional density value.
Comparing magnesium in cheddar vs spinach
The amount of magnesium in spinach is 79 mg per 100g.As magnesium percentage of the RDA this is 20 %. Comparing with Cheese, cheddar, in 100g contains 28 mg of magnesium. As a percentage of the RDA this is 7 %. Therefore, spinach has 51 mg more magnesium than Cheese, cheddar. In terms of magnesium percentage this is 182 % more magnesium. Spinach has an overall nutritional value score of 68 out of 100, whereas Cheese, cheddar has a nutritional value score of 14 out of 100.
The highest content of magnesium in the food items under the general description or type of cheddar, is Cheese, pasteurized process, cheddar or American, fat-free with 36 mg of magnesium per 100g. Comparing spinach with Cheese, pasteurized process, cheddar or American, fat-free; spinach has 43 mg more magnesium than Cheese, pasteurized process, cheddar or American, fat-free. In terms of magnesium percentage this is 119 % more magnesium.
Amount of magnesium per 100 Calories
100 calories of cheese, cheddar is a serving size of 0.25 g, and the amount of Magnesium is 6.95 mg (1.74% RDA). Other important and related nutrients and macronutrients such as Fat, in 100 Calories are as follows; Protein 6.18 g (10.92% RDA), Fat 8.22 g (12.66% RDA), Carbohydrate 0.32 g (0.25% RDA). This is shown in the magnesium RDA percentage chart below, based on 100 Calories, along with the other important nutrients and macro nutrients.
Content per Typical Serving Size 1 cup, diced (or 132 g)
For the food Cheese, cheddar the typical serving size is 1 cup, diced (or 132 g) which contains 36.96 mg of Magnesium. The magnesium percentage of the recommended daily value for this serving is 9 %.
To give 100% of the RDA, 11.1 servings of the typical serving size 1 cup, diced (or 132 g) give the complete RDA. In terms of the gram weight and total content for this serving the Calories content is 531.96 kcal, the Protein content is 32.87 g, the Fat content is 43.74 g and the Carbohydrate content is 1.69 g. The percentages are shown below in the magnesium chart, for the typical serving of magnesium and the related and important nutritional values.
Macronutrients in Cheese, cheddar
The amount of protein, fat and carbs from this food described above is measured in grams per 100g and grams in a typical serving size (in this case 1 cup, diced or 132 g), although it is also useful to give the number of calories from protein, fat and carbohydrate which are the most important macronutrients. For this serving in your diet here are the macronutrient calories. From protein the number of calories is 140.4 (kcal).The number of calories from Fat is 384.5 (kcal).The total calories from carbohydrate is 6.5 (kcal).
Milligrams of magnesium in cheddar (per 100g)
This list of 7 types of cheddar, is brought to you by www.dietandfitnesstoday.com and ranges from Cheese, pasteurized process, cheddar or American, fat-free through to Cheese, low fat, cheddar or colby where all food items are ranked by the content or amount per 100g. The nutritional magnesium content can be scaled by the amount in grams, oz or typical serving sizes. Simply click on a food item or beverage from the list at the bottom of the page to give a full dietary nutritional breakdown to answer the question how much magnesium in cheddar.
The list below gives the total magnesium content in the 7 items from the general description 'cheddar' each of which show the magnesium amount as well as Calories, Protein, Fat and Carbohydrate. Below, is the top 7 food items shown in the magnesium chart. This gives a quick and easy dietary comparison for the different items, where each item is listed at the bottom of the page with a nutritional summary.
The corresponding nutritional value for cheddar based on our density score out of 100 (ranked by the amount of magnesium per 100g) is shown in the below nutritional density chart.
The corresponding Calories for cheddar ranked by the amount of magnesium per 100g is shown below in the cheddar calories chart.
Average Content for cheddar
The average (or more correctly the arithmetic mean) amount of magnesium contained in 100g of cheddar, based on the list below of 7 different items under the general description of cheddar, is 27.29 mg of magnesium. This average value corresponds to 6.82 % of the recommended dietary allowance (or RDA) in your diet. The averages for the different nutrients are as follows; the average amount of Calories is 282.43 kcal, the average amount of Protein is 21.80 g, the average amount of Fat is 18.98 g and the average amount of Carbohydrate is g.
The median value of Magnesium is found in Cheese, cheddar which in 100g contains 28 mg of Magnesium. This corresponds to 7 % of the recommended daily allowance. For this serving the amount of Calories is 403 kcal, the amount of Protein is 24.9 g, the amount of Fat is 33.14 g and the amount of Carbohydrate is 1.28 g.
Highest magnesium Content per 100g
Using the list below for the 7 different cheddar nutrition entries in our database, the highest amount of magnesium is found in Cheese, pasteurized process, cheddar or American, fat-free which contains 36 mg of magnesium per 100g. The associated percentage of RDA is 9 %. For this 100g serving the Calories content is 148 kcal, the Protein content is 22.5 g, the Fat content is 0.8 g, the Carbohydrate content is 13.4 g.
The lowest amount of magnesium in 100g is in Cheese, low fat, cheddar or colby which contains 16 mg. This gives as percentage of the recommended daily allowance 4 % of the RDA. For this 100g serving the amount of Calories is 173 kcal, the amount of Protein is 24.35 g, the amount of Fat is 7 g, the amount of Carbohydrate is 1.91 g.
The difference between the highest and lowest values gives a magnesium range of 20 mg per 100g. The range for the other nutrients are as follows; 25 kcal for Calories, 1.85 g for Protein, 6.2 g for Fat, 0 g for Carbohydrate.
Highest Amount of magnesium per Serving
Please remember that the above gives an accurate value in 100g for high magnesium foods in your diet. For example 100g of Cheese, cheddar contains 28 mg of magnesium. However, there are other factors to consider when you are assessing your nutritional requirements. You should also take into account portion sizes when you are considering the magnesium nutritional content.
The food with the highest magnesium content per typical serving is Cheese, american cheddar, imitation which contains 64.96 mg in 1 cup (or 224 g). The percentage of the recommended daily value for this serving is 16 %. For this serving the Calories content is 535.36 kcal, the Protein content is 37.41 g, the Fat content is 31.36 g and the Carbohydrate content is 25.98 g.
From the list below you can find a full nutrition facts breakdown for all foods containing magnesium which can be scaled for different servings and quantities. We have also sorted our complete nutritional information and vitamin database of over 7000 foods, to give a list of foods rich in magnesium.
Cheddar List, magnesium Content per 100g
1. Cheese, pasteurized process, cheddar or American, fat-free - Magnesium
Nutritional Value : 16 / 100 food group - Dairy and Egg Products
36 mg (9%) 148 kcal (7%) 13.4 g (10%) 0.8 g (1%) 22.5 g (40%)
Typical Serving size of 1 cubic inch (or 16g):
5.76 mg (1%) 23.68 kcal (1%) 2.14 g (2%) 0.13 g (0%) 3.6 g (6%)
Other serving sizes 1 slice (3/4 oz) (or 21g):
2. Cheese product, pasteurized process, cheddar, reduced fat - Magnesium
Magnesium Calories Carbohydrate Fat Protein
33 mg (8%) 240 kcal (12%) 10.6 g (8%) 14.1 g (22%) 17.6 g (31%)
Typical Serving size of 1 slice 1 oz (or 28g):
9.24 mg (2%) 67.2 kcal (3%) 2.97 g (2%) 3.95 g (6%) 4.93 g (9%)
3. Cheese, american cheddar, imitation - Magnesium
29 mg (7%) 239 kcal (12%) 11.6 g (9%) 14 g (22%) 16.7 g (30%)
Typical Serving size of 1 cup (or 224g):
64.96 mg (16%) 535.36 kcal (27%) 25.98 g (20%) 31.36 g (48%) 37.41 g (67%)
Other serving sizes 1 cubic inch (or 18g):
Other serving sizes 1 slice (or 21g):
4. Cheese, cheddar - Magnesium
28 mg (7%) 403 kcal (20%) 1.28 g (1%) 33.14 g (51%) 24.9 g (44%)
Typical Serving size of 1 cup and diced (or 132g):
36.96 mg (9%) 531.96 kcal (27%) 1.69 g (1%) 43.74 g (67%) 32.87 g (59%)
Other serving sizes 1 cup and melted (or 244g):
68.32 mg (17%) 983.32 kcal (49%) 3.12 g (2%) 80.86 g (124%) 60.76 g (109%)
Other serving sizes 1 cup and shredded (or 113g):
7.94 mg (2%) 114.25 kcal (6%) 0.36 g (0%) 9.4 g (14%) 7.06 g (13%)
Other serving sizes 1 slice (1 oz) (or 28g):
7.84 mg (2%) 112.84 kcal (6%) 0.36 g (0%) 9.28 g (14%) 6.97 g (12%)
5. Cheese, low-sodium, cheddar or colby - Magnesium
27 mg (7%) 398 kcal (20%) 1.91 g (1%) 32.62 g (50%) 24.35 g (43%)
7.65 mg (2%) 112.83 kcal (6%) 0.54 g (0%) 9.25 g (14%) 6.9 g (12%)
6. Cheese, pasteurized process, cheddar or American, low sodium - Magnesium
22 mg (6%) 376 kcal (19%) 1.6 g (1%) 31.19 g (48%) 22.2 g (40%)
30.8 mg (8%) 526.4 kcal (26%) 2.24 g (2%) 43.67 g (67%) 31.08 g (56%)
3.96 mg (1%) 67.68 kcal (3%) 0.29 g (0%) 5.61 g (9%) 4 g (7%)
4.62 mg (1%) 78.96 kcal (4%) 0.34 g (0%) 6.55 g (10%) 4.66 g (8%)
7. Cheese, low fat, cheddar or colby - Magnesium
16 mg (4%) 173 kcal (9%) 1.91 g (1%) 7 g (11%) 24.35 g (43%)
21.12 mg (5%) 228.36 kcal (11%) 2.52 g (2%) 9.24 g (14%) 32.14 g (57%)
4.54 mg (1%) 49.05 kcal (2%) 0.54 g (0%) 1.98 g (3%) 6.9 g (12%)
magnesium and Nutritional Values - Top 221 Foods

redpajama_set_name: RedPajamaCommonCrawl


Join us for a weekend of running, training and fun in the beautiful Lamington National Park. This camp will be geared towards events such as the Lamington Classic and the Coastal High 50 ultra and will also be will be great for anyone looking to improve their trail running over distances around 21km or more.
We'll work on endurance, technical skills and strength, all while experiencing the beauty of this incredible part of the world. You'll spend the weekend running and relaxing with like-minded individuals, away from the pressures and distractions of the 'real world'.
Camp spots will be limited to a maximum of 30 participants so get in quick to secure your spot!
4 x run training sessions (inc 1 technique session), taking you over interesting parts of the Lamington Classic and Coastal High 50 courses with options depending upon running level.
Informal seminars exploring topics such as technique, race nutrition, preparation and increasing distance sensibly.
2 x nights bunkhouse accommodation at Grooms Cottage, Binna Burra.
While the weekend is designed for runners working towards trail events of around 21km or longer, we will be unlikely to cover that distance in any single session and will have ample rest time between each run. If you're feeling too tired, you can always choose to sit out a session. During runs, we'll split the group into two and provide options to keep runners of different speeds looping back together regularly. If you're comfortable running at least 10km, at any pace, you should be fine to participate in all runs.
We'll definitely do all that we can to make sure this doesn't happen. Depending on the variation in the group's abilities, you may spend some time running alone which can be quite lovely and is a great way to prepare you for race day, but that will usually only be for short periods. We will regularly regroup and the coach will run back and forth, ensuring everyone is safe, happy and running well.
We'll supply ingredients to prepare breakfasts and lunch, while the Binna Burra chefs will be catering for our Pizza Night. We'll send out a form to all participants in the lead up to each camp where you can tell us about any dietary requirements. We'll do our very best to cater for most needs and will discuss with you individually if there are any issues. We'll find a way to keep you well fed for the weekend's activities.
Please note: By placing a booking you agree to the Terms and Conditions of participating in The Trail Co. Club activities and our Cancellation Policy.
If the event fills up prior to commencement and a wait list participant can be recruited to fill your cancelled spot, therefore covering your costs, we will refund the whole payment minus a $25 charge for payment processing and administration.
For the safety of our participants and the trails on which we run, instances of severe weather may mean we need to cancel either individual runs or, in rare cases, a whole camp. Severe weather may include, but is not limited to, prolonged, heavy rainfall, high winds, lightening or fire danger. This difficult decision will be made by the coaches in collaboration with the Park Rangers and will not be negotiable.
Where individual runs during the camp need to be cancelled, we will do our best to find alternative routes, times or activities.
If a camp is cancelled before commencement, we will aim to reschedule or offer you a place on an alternative camp. If no suitable alternative is available, we will provide you with a full refund.
If a camp has commenced and running later becomes impossible, we will provide alternatives such as strength or information sessions.


It's been almost FIVE years since I created MIS! 5 YEARS! This little blog of mine is a full blown kid. Unfortunately, aside from writing regular blog posts and trying my best to stay active in the social media scene, I haven't done much to facilitate it's growth. Sure, there's been a few amazing partnerships and some cool opportunities, but I've honestly just let this space be what it is and that's been good enough.
So you can imagine my reaction when Vishnu asked what I want out of this site. Ummm…whaaaa?? I told him that it's just a hobby blog for now and that I'm having fun! But that wasn't a good enough answer. He asked me what I meant by "for now," and why I have ads, use affiliate marketing, etc. if it's just for fun. He also asked what my longer term plans are and what I'm doing to help them become a reality one day. I pushed back at first, but then when I was alone, I thought about his questions.
What do I want for MIS?
I honestly don't have a concrete answer to that question. I know that for now (there I go again!) it will be something I pursue in my spare time. But at the same time, I also know that it's something I want to put more time and effort into.
I jotted down notes and ideas while flying to Chicago this past weekend. My main goals for MIS center around growth and writing for external sites (still mapping this out). I also thought through my personal rules/principles. First and foremost, MIS will always be an authentic, real, genuine space. More than anything else, this means the most to me. Based on what I've read recently, I know it's possible to grow blogs using targeted strategies and tools. But I don't want to go down that path. I want MIS' growth and development to be more organic.
As far as content is concerned, I have no plans to change my focus. If anything, I'll be adding some more stuff to the mix! I seriously should've named this blog My Inner Organized Chaos!
Again, none of the above is concrete. I could very well find that as much as I want to spend time here, my attention is needed elsewhere. Good thing I'm a long term thinker!
However, the one concrete thing happening in the next month or so is that MIS is getting a facelift!
Over the last five years, everything but my current header, has been all me. I've done 99% of the design/backend work myself. And while it's been a great learning experience, I've made some major mistakes! I lost all of my subscribers…twice. I also deleted the Jetpack plugin recently because I was having issues and couldn't get it to reinstall. This means all of the WordPress.com features I love/am used to no longer work. Ahhh…such a mess!
Needless to say, I'm outsourcing this redesign. Aside from providing input and approving stuff, I'll have nothing to do with it…a very good thing! My #1 goal is to give MIS a modern/fresh/easier to navigate look and feel. MIS will also be mobile friendly going forward, which is super important because more and more of my readers use mobile devices. So please bear with me as we clean things up around here.
I kept this look for a while. The header was actually a word cloud that Vishnu created for me. It didn't show up for some reason, but I remember loving it!
This was the design I went with next because I wanted a white background and something a little more grown up.
If you're wondering why I'm sharing all of this it's because 1. I personally love it when bloggers share their thought process around blogging and 2. I believe that as readers of this blog you deserve to know what's happening and coming next and 3. It's exciting and fun!
My Inner Shakti's growing up, and I hope you stick around to see what's next!
Bloggers, how long have you been blogging? Readers, how long have you been reading blogs?
My Inner Shakti Turns 5!
Thanks, Tanvi! I think half my battle was deciding that growth was something I wanted enough to put work into!
And you better not go anywhere! Where else would I go for delicious food reviews that make my mouth water!
A-bloody-men. This is so important and unfortunately, such a rarity in today's day and age. Organic growth > paid or outsourced growth. It's so easy to buy followers or do other antics but in the long run, it's detrimental. I'm excited to see where MIS goes- I've said it before but you have a talent for writing- I can read your posts with no pictorial side kicks added.
You're making me blush, A!! But seriously, thank you. Means a lot coming from you.


For admission into the Honours degree programme, students should have a first degree in a related field of study. Students require an average mark of at least 65% for their majors in their final year of undergraduate study. Students with a three-year certificate and five years of appropriate work experience may also apply, if their application is accompanied by strong academic recommendations.
For admission to the structured Master's and the Masters by Thesis programmes, students require an average grade of at least 65% for their majors in their final year of a four year undergraduate degree, or an average grade of 65% for an honours degree in a related field of study. Students undertaking the Masters by Thesis may be required to do course work at UWC or at one of our partner institutes.
Students applying via RPL (Recognition of Prior Learning) for the Honours programme must have matric plus a three year diploma with an average mark of 65% for all modules plus working experience of at least five years. They must provide the names and contact details of two academic referees.
No qualification will be awarded for early exit from any of the Development Studies programmes.
Deadline for application is 15 September each year, and students who require study visas are advised to apply before 30 August. Late applications will not be considered.
Applications may be made through the UWC website: www.uwc.ac.za. Click on Online Services, then click on online applications and complete the form.
You may liaise with Ms Candice Beukes at cbeukes@uwc.ac.za or Mr Lee Joseph at joseph@uwc.ac.za should you have any further problems with your online application. If you are currently registered with UWC, you may complete an Internal Postgraduate Application form (obtainable from the ISD) and indicate on the form which Department you wish to study with.
Please quote the online applicant number as well as your old UWC student number on your motivational letter and submit all supporting documentation to isdapplications@gmail.com addressed to Ms Priscilla Kippie.
Please include the following in the subject line of your email: Application and support docs for Honours or Masters or PhD, and always quote your online application number or old UWC student number.
Certified copies of your previous academic transcripts which provide the grades that you have achieved.
In addition, all students with international qualifications (outside South Africa) are required to have their international/foreign qualifications assessed by SAQA. Please send all your documents to SAQA as well. Please visit the SAQA website and follow all instructions as per website. Note that your application will not be processed until all these documents are received.
•	or go to http://nrfonline.nrf.ac.za.
•	Ms Yasin on syasin@uwc.ac.za details: +27 21 959 2569 / 2999 or email (This is the applicants responsibility).


text:
Gaming/
Game Systems/
The 10 Best Video Game Consoles of All Time
The PlayStation, Xbox 360, NES, and other classic gaming consoles all made their mark on the industry--but which of them is most innovative, important console of all time?
By Jeffrey L. Wilson
May 28, 2010 12:00AM EST
OB Roundup
Video game consoles have come a long way in the three decades since they first appeared. They began as simple entertainment devices for über-nerd hobbyists—remember the Atari 2600? Since then, gaming has ballooned into a mainstream, multi-billion dollar industry featuring graphical powerhouses like the Sony PlayStation 3 , which can render millions of polygons per second. Systems have come and gone in meanwhile, and I thought it would be worth taking a look back to rank the all-time greatest. Raw power isn't a consideration; if it were, the Nintendo Wii , Microsoft Xbox 360 , and PS3 would wipe the floor with the Atari 2600, NES, and other trailblazers. Instead, I've ranked them on their importance and innovation. Some selections are obvious; but I've I considered not only consoles released stateside, but overseas as well, so some might surprise you. I've owned all the consoles mentioned, so this list comes from genuine, hands-on experience. Enjoy the ride as I count down the top 10 video game consoles of all time. Also, check out our selections for the most violent video gamesof all time, many of which were released for the consoles mentioned here.
Check out the slideshow below for a countdown to the #1 greatest game console of all time. And, if you disagree with my ratings, feel free to post your own list (and your reasons) in the comments. You'll be wrong, of course, but feel free.
Nintendo 3DS Game Lineup Round-Up
Jeffrey L. Wilson Lead Analyst, Software
For more than a decade, Jeffrey L. Wilson has penned gadget- and video game-related nerd-copy for a variety of publications, including 1UP, 2D-X, The Cask, Laptop, LifeStyler, Parenting, Sync, Wise Bread, and WWE. He now brings his knowledge and skillset to PCMag as Lead Analyst. When he isn't staring at a monitor (or two) and churning out web h... See Full Bio
More From Jeffrey L.
From Ink to iPads: The Evolution of the Modern Comic Book
The Best Online Music Streaming Services for 2019
The Best Tune-Up Utilities for 2019
CCleaner Professional Plus
Nintendo Switch vs. PlayStation 4 vs. Xbox One: Top Game Consoles Duke It Out
5 Nintendo Switch Games to Buy on Launch Day
Hands On With Sony's PlayStation VR
Buy a PS4 or Xbox One, Get $100 Gift Card
How to Buy a Game Console


Good afternoon, Jonathan, and welcome to TD Helps. We're sorry to hear that you're having trouble performing a wire transfer to your friend here in the United States, and we'll be more than happy to help. As you stated that you plan on sending U.S. Dollars from France to a TD Bank account, the information that you'll need is as follows: Wire to: TD Bank, N.A. Location: Wilmington, Delaware ABA#/Routing#: 031101266 Beneficiary Account Number: Your friends full TD Bank account number Beneficiary Full Name: Your friends full name, exactly as we have it listed on their account Beneficiary Address: Your friends full address, exactly as we have it listed on their account In some cases, the financial institution sending the wire transfer may be unable to accept an ABA/Routing Number for an international transfer; they may ask for a BIC/Swift Code instead. If your financial institution requires you to provide a BIC/Swift Code for this international wire transfer then you should provide the following: Wire to (Beneficiary Bank): TD Bank, N.A. BIC/Swift Code: NRTHUS33XXX Bank Address: TD BANK N.A., 6000 Atrium Way, Mount Laurel, NJ, USA 08054 In Favor of: Beneficiary Account Number: Your friends full TD Bank account number Beneficiary Full Name: Your friends full name, exactly as we have it listed on their account Beneficiary Address: Your friends full address, exactly as we have it listed on their account Additionally, we strongly recommend connecting with your financial institution to determine if they require you to provide an ABA/Routing Number or a BIC/Swift Code to complete the transfer. Please don't hesitate to let us know if you have any additional questions or concerns, Jonathan, and we hope you have an amazing day!


Let's talk about Valentine's Day. For the record, and surprisingly to my friends, I'm not into all the bells and whistles (or pressure) that comes with that day.
I met my husband when we were just finishing high school and we've been together ever since. Gifts as symbols of our love on this designated day… no thanks. In all honesty, I don't need gifts to validate our relationship (but my birthday is another story). We'll make nice dinner at home and maybe go out for ramen or dim sum over the weekend and we'll definitely up our dessert game and dash into one of the local bakeries for something extra gooey!
We've been married for 12 years and dated for 4 years before that.
We're going out for dinner at a private club with some friends. There will be a pianist and really good food. We're usually not fancy but I figure any place that gets us to shower, dress up and do our hair is fancy enough for Valentines Day. And to be honest, I only thought about Valentine's Day for the first time when you sent me this quiz. So you can see I'm a fairly casual gal when it comes to romance.
Most romantic restaurant recommendations in Toronto?
Regarding restaurants, we love our authentic places. Our favourite night out is just going to Los Arrieros on Jane where they serve Colombian food at picnic tables. When we're in the mood to spend some big bucks, we will go to one of the buffets or high seas at Old Mill restaurant.
The greatest song I ever heard was my husband singing happy birthday to me over the phone when we had only been dating for 3 weeks. It showed a lot of confidence. He accompanied himself on guitar. My best musical experience was singing with Melanie Doane at a fundraiser. We sang the theme song to Different Strokes.
We really enjoy trying new things. A couple years ago we decided to visit one of our favourite places in Toronto – Ward's Island – during the Winter. We usually go during the warmer months and making the ferry journey while the lake was frozen over was WILD! There was a boat ahead of us that broke through the ice so we could get across, and where you can usually see the tree-lined shore across the way we saw absolutely nothing. It was completely white, like a blank canvas, because of the snow. Same with the beach. It was so incredible, like we had transported to the Arctic. We highly recommend others check out the Islands in the Winter! We may go back again this year. Something else we may do this year? We've also been super interested in checking out O.Noir.
We're a little biased, but we love Mercatto at 101 College Street. It's where we had our wedding reception. Incredible food, awesome ambiance, and the staff are just so, so nice. It's always a great experience going there. Actually, funny enough, we're at Mercatto now answering these questions over dinner!
Favourite song that get you groovin'?
Jason Collett's latest, Song & Dance Man, is on constant rotation at our house.
How long long have you been together?
Chad and I have been together for almost 6 years, and actually got engaged two years ago on Valentine's Day!
This year, Chad and I are going to The Toronto Symphony Orchestra, an opening performance for Chinese New Year compliments of Audi. We also always celebrate with great food and wine!
The Chase – delicious food and a gorgeous room that is sure to win over your loved one!
Campagnolo – the perfect setting to wine and dine your date. Arguably the best Italian food in town, with a romantic space and friendly service.
Jacob's Steak House – the perfect way to really impress her/him!
We met three years ago and are newlyweds of almost two months!
Daniel is definitely the more romantic of the two. I likes to surprise Julio with flowers on special occasions. This year we will be celebrating with dinner at FRANK at the AGO and a romantic night at home. It's not often we get a quiet night to ourselves, so it's exactly what we both want this year as husbands.
FRANK at the AGO, Bosk at Shangri-La, America at Trump Toronto and Reforma.
Favourite song that gets you groovin'?
For Julio, anything Lady Gaga usually works. And Daniel listens to anything to get Julio groovin' like a good husband should!
25 years, we met in university.
With four sons, it is no shock that this year we will be in Montreal for Valentines' Day attending a hockey tournament. In the past we have really kept things simple but for our most recent V-day outing last year we went to see "Once" followed by drinks at a local jazz bar.
It is a funny question to ask us because we have never been big on the fancy romantic dinners out. Truthfully, our most memorable and romantic times come when we go back to the roots of our relationship from our dating days. We love to grab a veal sandwich from "California Sandwiches" on Claremont St. in Little Italy, buy some Pastéis de Nata for dessert in Little Portugal, and then some more yummies to take home from Kensington Market, followed by a long walk in our awesome city.


text:
A telephone replay of the call will be available from February 22, 2023 at 11:00 a.m. Eastern Time through 11:59 p.m. on March 8, 2023 by dialing 1-877-660-6853, replay access code #13735349. An online archive of the webcast will also be available through March 8, 2023.
About Tanger Factory Outlet Centers, Inc.
Tanger Factory Outlet Centers, Inc. (NYSE: SKT) is a leading operator of upscale open-air outlet centers that owns (or has an ownership interest in) and/or manages a portfolio of 36 centers with an additional center currently under development. Tanger's operating properties are located in 20 states and in Canada, totaling approximately 13.9 million square feet, leased to over 2,700 stores operated by more than 600 different brand name companies. The Company has more than 42 years of experience in the outlet industry and is a publicly-traded REIT. For more information on Tanger Outlet Centers, call 1-800-4TANGER or visit the Company's website at www.tangeroutlets.com.
Investor Contact Information
Doug McDonald
SVP, Finance and Capital Markets
TangerIR@tangeroutlets.com
View original content to download multimedia:https://www.prnewswire.com/news-releases/tanger-schedules-fourth-quarter-and-year-end-2022-earnings-release-and-conference-call-301714942.html
SOURCE Tanger Factory Outlet Centers, Inc.
footer popup
TEXT DEALS
Get Sales & the Best Offers
Straight to Your Phone!
Text TANGER to 55695
or Enter Mobile # Below.
Press the button below to
send TANGER to 55695 to
begin sign up.
Tap to Join
Tanger Text Deals – message & data rates may apply. Must reply to initial message with zip/postal code to be opted in. No purchase necessary. Recurring automated marketing messages will be sent to the number provided at opt-in. Mobile T&Cs & Privacy Policy. Text STOP to 55695 to opt out.
TANGER TEXT DEALS
Facebook Twitter Instagram YouTube LinkedIn Pinterest
©2022 Tanger Factory Outlet Center
| Terms of Use | Accessibility
Digital Coupon Book Virtual Shopper Bus & Groups Best Price Promise My Tanger Profile Contact Us
Careers Business Investor Relations Strategic Partnerships Leasing & Outparcel Information Corporate News
TANGER APP