57. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 4/7/2019 7:13:55 PM Eastern Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

57.1 Files compared

# Location File Last Modified
1 MHLTH_CLOZ_MOD _SRC.zip\MHLTH_CLOZ_MOD _SRC\Releases\ClozMod_Build5_.zip\Va.Gov.Nccc.Registry.Tests\Account AccountControllerTests.cs Mon Mar 4 20:33:52 2019 UTC
2 MHLTH_CLOZ_MOD _SRC.zip\MHLTH_CLOZ_MOD _SRC\Releases\ClozMod_Build5_.zip\Va.Gov.Nccc.Registry.Tests\Account AccountControllerTests.cs Thu Apr 4 19:05:19 2019 UTC

57.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 26 1430
Changed 25 50
Inserted 0 0
Removed 0 0

57.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

57.4 Active regular expressions

No regular expressions were active.

57.5 Comparison detail

  1   using Micr osoft.Visu alStudio.T estTools.U nitTesting ;
  2   using Syst em.Threadi ng.Tasks;
  3   using Syst em.Web.Mvc ;
  4   using Va.G ov.Nccc.Re gistry.Con trollers;
  5   using Va.G ov.Nccc.Re gistry.Mod els.Home;
  6   using Syst em.Diagnos tics.CodeA nalysis;
  7   using Moq;
  8   using Va.G ov.Nccc.Da ta.Common. Repository ;
  9   using Va.G ov.Nccc.Da ta.Common. RegistryUs ers;
  10   using Va.G ov.Nccc.Da ta.Common. Results;
  11   using Va.G ov.Nccc.Da ta.Common. Prescriber s;
  12   using Va.G ov.Nccc.Da ta.Common. EmailAddre sses;
  13   using Va.G ov.Nccc.Re gistry.Mod els.Common ;
  14   using Va.G ov.Nccc.Da ta.Common. PhoneNumbe rs;
  15   using Va.G ov.Nccc.Da ta.Common. Facilities ;
  16   using Syst em.Collect ions.Gener ic;
  17  
  18   namespace  Va.Gov.Ncc c.Registry .Tests.Acc ount
  19   {
  20       [Exclu deFromCode Coverage]
  21       [TestC lass()]
  22       [TestC ategory("A ccount")]
  23       public  class Acc ountContro llerTests
  24       {
  25           Ac countContr oller cont rollerSyst emUnderTes t;
  26           Lo ginViewMod el modelTo BePassedTo SystemUnde rTest;
  27           Mo ck<IReposi tory> mock NcccReposi tory;
  28           Mo ck<IRegist ryUsersRep ository> m ockIRegist ryUserRepo sitory;
  29           Mo ck<IPrescr ibersRepos itory> moc kIPrescrib erReposito ry;
  30  
  31           [T estInitial ize]
  32           pu blic void  TestInit()
  33           {
  34                // Mock  out our us er reposit ory (a fak e concrete  instance)
  35                mockIReg istryUserR epository  = new Mock <IRegistry UsersRepos itory>(Moc kBehavior. Loose);
  36                mockIPre scriberRep ository =  new Mock<I Prescriber sRepositor y>(MockBeh avior.Loos e);
  37  
  38                // Mock  out our la rger repos itory (tha t collects  all the r epositorie s)
  39                mockNccc Repository  = new Moc k<IReposit ory>(MockB ehavior.Lo ose);
  40  
  41                // Set u p the meth od for the  larger re pository t hat calls  the smalle r reposito ry
  42                mockNccc Repository .Setup(x = > x.Users) .Returns(m ockIRegist ryUserRepo sitory.Obj ect);
  43                mockNccc Repository .Setup(x = > x.Prescr ibers).Ret urns(mockI Prescriber Repository .Object);
  44  
  45                // Creat e a concre te instanc e of the s ystem we w ill be tes ting
  46                controll erSystemUn derTest =  new Accoun tControlle r(mockNccc Repository .Object);
  47  
  48                // Pass  a concrete  ViewModel  to the co ntroller
  49                modelToB ePassedToS ystemUnder Test = new  LoginView Model();
  50           }
  51  
  52           [T estMethod( )]
  53           pu blic async  Task Acco untControl lerUserSig nIn()
  54           {
  55                // Arran ge
  56                // Happe ns mostly  in TestIni t
  57  
  58                // Act
  59                ActionRe sult resul t = await  controller SystemUnde rTest.Sign In(modelTo BePassedTo SystemUnde rTest);
  60  
  61                // Asser
  62                Assert.I sNotNull(r esult);
  63                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  64                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  65            
  66           }
  67  
  68           [T estMethod( )]
  69           pu blic async  Task Acco untControl lerFacilit ySignIn()
  70           {
  71                // Arran ge
  72                // Happe ns mostly  in TestIni t
  73  
  74                // Act
  75                ActionRe sult resul t = await  controller SystemUnde rTest.Faci litySignIn (modelToBe PassedToSy stemUnderT est);
  76  
  77                // Asser
  78                Assert.I sNotNull(r esult);
  79                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  80                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  81                
  82           }
  83  
  84           [T estMethod( )]
  85           pu blic async  Task Regi sterUser_M odelStateI nvalid()
  86           {
  87                // Arran ge
  88                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  89                {
  90                };
  91  
  92                controll erSystemUn derTest.Mo delState.A ddModelErr or("EmailA ddress", " Email is r equired");
  93  
  94                // Act
  95                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  96  
  97                // Asser t
  98                Assert.I sNotNull(r esult);
  99                Assert.I sInstanceO fType(resu lt, typeof (ViewResul t));
  100                var view Result = r esult as V iewResult;
  101                Assert.A reEqual("R egister",  viewResult .ViewName) ;
  102           }
  103  
  104           [T estMethod( )]
  105           pu blic async  Task Regi sterUser_U serFound_A ctive()
  106           {
  107                // Arran ge
  108                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  109                {
  110                    Item  = new Reg istryUser
  111                    {
  112                          EmailAddre ss = " PII               ",
  113                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ac tive },
  114                         Active = t rue
  115                    }
  116                });
  117  
  118                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  119                {
  120                      EmailAddre ss = " PII               "
  121                };
  122  
  123                // Act
  124                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  125                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  126  
  127                // Asser t
  128                Assert.I sNotNull(r esult);
  129                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  130                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  131                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  132           }
  133  
  134           [T estMethod( )]
  135           pu blic async  Task Regi sterUser_U serFound_I nActive()
  136           {
  137                // Arran ge
  138                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  139                {
  140                    Item  = new Reg istryUser
  141                    {
  142                          EmailAddre ss = " PII               ",
  143                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.In active },
  144                         Active = f alse
  145                    }
  146                });
  147  
  148                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  149                {
  150                      EmailAddre ss = " PII               "
  151                };
  152  
  153                // Act
  154                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  155                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  156  
  157                // Asser t
  158                Assert.I sNotNull(r esult);
  159                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  160                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  161                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  162           }
  163  
  164           [T estMethod( )]
  165           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressFound_ BelongsToA Prescriber _CreateUse rSuccess()
  166           {
  167                // Arran ge
  168                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  169                {
  170                    Item  = null
  171                });
  172  
  173                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  174                {
  175                    Item  = new Ema ilAddress
  176                    {
  177                          Address =  " PII               ",
  178                         Prescriber  = new Pre scriber
  179                         {
  180                         }
  181                    }
  182                });
  183  
  184                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  185                {
  186                    Item  = new Reg istryUser
  187                    {
  188                          EmailAddre ss = " PII               ",
  189                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  190                         Active = f alse
  191                    },
  192                    Succ ess = true
  193                });
  194  
  195                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  196                {
  197                    Firs tName = "T est",
  198                    Last Name = "Us er",
  199                      EmailAddre ss = " PII               ",
  200                    Pres criberOpti on = Presc riberOptio nValue.Pre scriber,
  201                    Phon eNumber =  new PhoneN umberViewM odel
  202                    {
  203                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  204                         Number = " 0001234567 ",
  205                         Extension  = "123"
  206                    }
  207                };
  208  
  209                // Act
  210                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  211                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  212  
  213                // Asser t
  214                Assert.I sNotNull(r esult);
  215                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  216                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  217                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  218           }
  219  
  220           [T estMethod( )]
  221           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressFound_ BelongsToA Prescriber _CreateUse rFailed()
  222           {
  223                // Arran ge
  224                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  225                {
  226                    Item  = null
  227                });
  228  
  229                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  230                {
  231                    Item  = new Ema ilAddress
  232                    {
  233                          Address =  " PII               ",
  234                         Prescriber  = new Pre scriber
  235                         {
  236                         }
  237                    }
  238                });
  239  
  240                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  241                {
  242                    Item  = new Reg istryUser
  243                    {
  244                          EmailAddre ss = " PII               ",
  245                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  246                         Active = f alse
  247                    },
  248                    Succ ess = fals e
  249                });
  250  
  251                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  252                {
  253                    Firs tName = "T est",
  254                    Last Name = "Us er",
  255                      EmailAddre ss = " PII               ",
  256                    Pres criberOpti on = Presc riberOptio nValue.Pre scriber,
  257                    Phon eNumber =  new PhoneN umberViewM odel
  258                    {
  259                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  260                         Number = " 0001234567 ",
  261                         Extension  = "123"
  262                    }
  263                };
  264  
  265                // Act
  266                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  267                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  268  
  269                // Asser t
  270                Assert.I sNotNull(r esult);
  271                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  272                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  273                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  274           }
  275  
  276           [T estMethod( )]
  277           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionP rescriber_ CreateUser Success()
  278           {
  279                // Arran ge
  280                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  281                {
  282                    Item  = null
  283                });
  284  
  285                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  286                {
  287                    Item  = null
  288                });
  289  
  290                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  291                {
  292                    Item  = new Reg istryUser
  293                    {
  294                          EmailAddre ss = " PII               ",
  295                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  296                         Active = f alse
  297                    },
  298                    Succ ess = true
  299                });
  300  
  301                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  302                {
  303                    Firs tName = "T est",
  304                    Last Name = "Us er",
  305                      EmailAddre ss = " PII               ",
  306                    Pres criberOpti on = Presc riberOptio nValue.Pre scriber,
  307                    Phon eNumber =  new PhoneN umberViewM odel
  308                    {
  309                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  310                         Number = " 0001234567 ",
  311                         Extension  = "123"
  312                    }
  313                };
  314  
  315                // Act
  316                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  317  
  318                // Asser t
  319                Assert.I sNotNull(r esult);
  320                Assert.I sInstanceO fType(resu lt, typeof (ViewResul t));
  321                var view Result = r esult as V iewResult;
  322                Assert.A reEqual("R egister",  viewResult .ViewName) ;
  323                Assert.I sInstanceO fType(view Result.Mod el, typeof (RegisterV iewModel)) ;
  324                var view ResultMode l = viewRe sult.Model  as Regist erViewMode l;
  325                Assert.A reEqual(vi ewResultMo del.Curren tTab, 2);
  326           }
  327  
  328           [T estMethod( )]
  329           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionP rescriber_ CreateUser Failed()
  330           {
  331                // Arran ge
  332                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  333                {
  334                    Item  = null
  335                });
  336  
  337                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  338                {
  339                    Item  = null
  340                });
  341  
  342                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  343                {
  344                    Item  = new Reg istryUser
  345                    {
  346                          EmailAddre ss = " PII               ",
  347                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  348                         Active = f alse
  349                    },
  350                    Succ ess = fals e
  351                });
  352  
  353                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  354                {
  355                    Firs tName = "T est",
  356                    Last Name = "Us er",
  357                      EmailAddre ss = " PII               ",
  358                    Pres criberOpti on = Presc riberOptio nValue.Pre scriber,
  359                    Phon eNumber =  new PhoneN umberViewM odel
  360                    {
  361                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  362                         Number = " 0001234567 ",
  363                         Extension  = "123"
  364                    }
  365                };
  366  
  367                // Act
  368                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  369                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  370  
  371                // Asser t
  372                Assert.I sNotNull(r esult);
  373                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  374                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  375                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  376           }
  377  
  378           [T estMethod( )]
  379           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionNcc c_CreateUs erSuccess( )
  380           {
  381                // Arran ge
  382                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  383                {
  384                    Item  = null
  385                });
  386  
  387                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  388                {
  389                    Item  = null
  390                });
  391  
  392                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  393                {
  394                    Item  = new Reg istryUser
  395                    {
  396                          EmailAddre ss = " PII               ",
  397                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  398                         Active = t rue
  399                    },
  400                    Succ ess = true
  401                });
  402  
  403                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  404                {
  405                    Firs tName = "T est",
  406                    Last Name = "Us er",
  407                      EmailAddre ss = " PII               ",
  408                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  409                    Regi sterOption  = Registe rOptionVal ue.Nccc,
  410                    Phon eNumber =  new PhoneN umberViewM odel
  411                    {
  412                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  413                         Number = " 0001234567 ",
  414                         Extension  = "123"
  415                    }
  416                };
  417  
  418                // Act
  419                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  420                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  421  
  422                // Asser t
  423                Assert.I sNotNull(r esult);
  424                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  425                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  426                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  427           }
  428  
  429           [T estMethod( )]
  430           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionNcc c_CreateUs erFailed()
  431           {
  432                // Arran ge
  433                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  434                {
  435                    Item  = null
  436                });
  437  
  438                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  439                {
  440                    Item  = null
  441                });
  442  
  443                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  444                {
  445                    Item  = new Reg istryUser
  446                    {
  447                          EmailAddre ss = " PII               ",
  448                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  449                         Active = t rue
  450                    },
  451                    Succ ess = fals e
  452                });
  453  
  454                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  455                {
  456                    Firs tName = "T est",
  457                    Last Name = "Us er",
  458                      EmailAddre ss = " PII               ",
  459                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  460                    Regi sterOption  = Registe rOptionVal ue.Nccc,
  461                    Phon eNumber =  new PhoneN umberViewM odel
  462                    {
  463                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  464                         Number = " 0001234567 ",
  465                         Extension  = "123"
  466                    }
  467                };
  468  
  469                // Act
  470                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  471                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  472  
  473                // Asser t
  474                Assert.I sNotNull(r esult);
  475                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  476                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  477                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  478           }
  479  
  480           [T estMethod( )]
  481           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionFac ility_HasR equestedFa cilities_C reateUserS uccess()
  482           {
  483                // Arran ge
  484                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  485                {
  486                    Item  = null
  487                });
  488  
  489                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  490                {
  491                    Item  = null
  492                });
  493  
  494                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  495                {
  496                    Item  = new Reg istryUser
  497                    {
  498                          EmailAddre ss = " PII               ",
  499                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  500                         Active = t rue
  501                    },
  502                    Succ ess = true
  503                });
  504  
  505                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  506                {
  507                    Firs tName = "T est",
  508                    Last Name = "Us er",
  509                      EmailAddre ss = " PII               ",
  510                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  511                    Regi sterOption  = Registe rOptionVal ue.Facilit y,
  512                    Phon eNumber =  new PhoneN umberViewM odel
  513                    {
  514                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  515                         Number = " 0001234567 ",
  516                         Extension  = "123"
  517                    },
  518                    Requ estedFacil ities = ne w List<Fac ility>
  519                    {
  520                         new Facili ty
  521                         {
  522                             Statio nName = "P arent Faci lity 1",
  523                             ShortN ame = "PF1 ",
  524                             Statio nNumber =  100
  525                         },
  526                         new Facili ty
  527                         {
  528                             Statio nName = "P arent Faci lity 2",
  529                             ShortN ame = "PF2 ",
  530                             Statio nNumber =  200
  531                         }
  532                    }
  533                };
  534  
  535                // Act
  536                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  537                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  538  
  539                // Asser t
  540                Assert.I sNotNull(r esult);
  541                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  542                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  543                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  544           }
  545  
  546           [T estMethod( )]
  547           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionFac ility_HasR equestedFa cilities_C reateUserF ailed()
  548           {
  549                // Arran ge
  550                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  551                {
  552                    Item  = null
  553                });
  554  
  555                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  556                {
  557                    Item  = null
  558                });
  559  
  560                mockIReg istryUserR epository. Setup(x =>  x.Registe rUser(It.I sAny<Regis tryUser>() )).Returns Async(new  ItemResult <RegistryU ser>
  561                {
  562                    Item  = new Reg istryUser
  563                    {
  564                          EmailAddre ss = " PII               ",
  565                         RegistryUs erStatus =  new Regis tryUserSta tus { Valu e = Regist ryUserStat usValue.Ne w },
  566                         Active = t rue
  567                    },
  568                    Succ ess = fals e
  569                });
  570  
  571                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  572                {
  573                    Firs tName = "T est",
  574                    Last Name = "Us er",
  575                      EmailAddre ss = " PII               ",
  576                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  577                    Regi sterOption  = Registe rOptionVal ue.Facilit y,
  578                    Phon eNumber =  new PhoneN umberViewM odel
  579                    {
  580                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  581                         Number = " 0001234567 ",
  582                         Extension  = "123"
  583                    },
  584                    Requ estedFacil ities = ne w List<Fac ility>
  585                    {
  586                         new Facili ty
  587                         {
  588                             Statio nName = "P arent Faci lity 1",
  589                             ShortN ame = "PF1 ",
  590                             Statio nNumber =  100
  591                         },
  592                         new Facili ty
  593                         {
  594                             Statio nName = "P arent Faci lity 2",
  595                             ShortN ame = "PF2 ",
  596                             Statio nNumber =  200
  597                         }
  598                    }
  599                };
  600  
  601                // Act
  602                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  603                Redirect ToRouteRes ult redire ctResult =  result as  RedirectT oRouteResu lt;
  604  
  605                // Asser t
  606                Assert.I sNotNull(r esult);
  607                Assert.I sInstanceO fType(resu lt, typeof (ActionRes ult));
  608                Assert.I sInstanceO fType(resu lt, typeof (RedirectT oRouteResu lt));
  609                Assert.A reEqual(re directResu lt.RouteVa lues["Acti on"], "Sig nIn");
  610           }
  611  
  612           [T estMethod( )]
  613           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionFac ility_NoRe questedFac ilities()
  614           {
  615                // Arran ge
  616                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  617                {
  618                    Item  = null
  619                });
  620  
  621                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  622                {
  623                    Item  = null
  624                });
  625  
  626                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  627                {
  628                    Firs tName = "T est",
  629                    Last Name = "Us er",
  630                      EmailAddre ss = " PII               ",
  631                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  632                    Regi sterOption  = Registe rOptionVal ue.Facilit y,
  633                    Phon eNumber =  new PhoneN umberViewM odel
  634                    {
  635                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  636                         Number = " 0001234567 ",
  637                         Extension  = "123"
  638                    },
  639                    Requ estedFacil ities = nu ll
  640                };
  641                
  642                // Act
  643                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  644  
  645                // Asser t
  646                Assert.I sNotNull(r esult);
  647                Assert.I sInstanceO fType(resu lt, typeof (ViewResul t));
  648                var view Result = r esult as V iewResult;
  649                Assert.A reEqual("R egister",  viewResult .ViewName) ;
  650                Assert.I sInstanceO fType(view Result.Mod el, typeof (RegisterV iewModel)) ;
  651                var view ResultMode l = viewRe sult.Model  as Regist erViewMode l;
  652                Assert.A reEqual(vi ewResultMo del.Curren tTab, 3);
  653           }
  654  
  655           [T estMethod( )]
  656           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN onPrescrib er_Registe rOptionNon e()
  657           {
  658                // Arran ge
  659                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  660                {
  661                    Item  = null
  662                });
  663  
  664                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  665                {
  666                    Item  = null
  667                });
  668  
  669                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  670                {
  671                    Firs tName = "T est",
  672                    Last Name = "Us er",
  673                      EmailAddre ss = " PII               ",
  674                    Pres criberOpti on = Presc riberOptio nValue.Non Prescriber ,
  675                    Regi sterOption  = Registe rOptionVal ue.None,
  676                    Phon eNumber =  new PhoneN umberViewM odel
  677                    {
  678                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  679                         Number = " 0001234567 ",
  680                         Extension  = "123"
  681                    },
  682                    Requ estedFacil ities = nu ll
  683                };
  684  
  685                // Act
  686                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  687  
  688                // Asser t
  689                Assert.I sNotNull(r esult);
  690                Assert.I sInstanceO fType(resu lt, typeof (ViewResul t));
  691                var view Result = r esult as V iewResult;
  692                Assert.A reEqual("R egister",  viewResult .ViewName) ;
  693                Assert.I sInstanceO fType(view Result.Mod el, typeof (RegisterV iewModel)) ;
  694                var view ResultMode l = viewRe sult.Model  as Regist erViewMode l;
  695                Assert.A reEqual(vi ewResultMo del.Curren tTab, 3);
  696           }
  697  
  698           [T estMethod( )]
  699           pu blic async  Task Regi sterUser_U serNotFoun d_EmailAdd ressNotFou nd_Prescri berOptionN one()
  700           {
  701                // Arran ge
  702                mockIReg istryUserR epository. Setup(x =>  x.AnyWith Email(It.I sAny<strin g>())).Ret urnsAsync( new ItemRe sult<Regis tryUser>
  703                {
  704                    Item  = null
  705                });
  706  
  707                mockIPre scriberRep ository.Se tup(x => x .GetEmailA ddress(It. IsAny<stri ng>())).Re turns(new  ItemResult <EmailAddr ess>
  708                {
  709                    Item  = null
  710                });
  711  
  712                Register ViewModel  registerVi ewModel =  new Regist erViewMode l
  713                {
  714                    Firs tName = "T est",
  715                    Last Name = "Us er",
  716                      EmailAddre ss = " PII               ",
  717                    Pres criberOpti on = Presc riberOptio nValue.Non e,
  718                    Phon eNumber =  new PhoneN umberViewM odel
  719                    {
  720                         PhoneNumbe rType = Ph oneNumberT ypeValue.H ome,
  721                         Number = " 0001234567 ",
  722                         Extension  = "123"
  723                    },
  724                    Requ estedFacil ities = nu ll
  725                };
  726  
  727                // Act
  728                ActionRe sult resul t = await  controller SystemUnde rTest.Regi sterUser(r egisterVie wModel);
  729  
  730                // Asser t
  731                Assert.I sNotNull(r esult);
  732                Assert.I sInstanceO fType(resu lt, typeof (ViewResul t));
  733                var view Result = r esult as V iewResult;
  734                Assert.A reEqual("R egister",  viewResult .ViewName) ;
  735                Assert.I sInstanceO fType(view Result.Mod el, typeof (RegisterV iewModel)) ;
  736                var view ResultMode l = viewRe sult.Model  as Regist erViewMode l;
  737                Assert.A reEqual(vi ewResultMo del.Curren tTab, 2);
  738           }
  739       }
  740   }