@@ -534,6 +534,65 @@ testExperimentationRuleNonDetailed()
534534 LDClientClose (client );
535535}
536536
537+ static void
538+ testConstructAliasEvent ()
539+ {
540+ struct LDUser * previous , * current ;
541+ struct LDJSON * result , * expected ;
542+
543+ LD_ASSERT (previous = LDUserNew ("a" ));
544+ LD_ASSERT (current = LDUserNew ("b" ));
545+
546+ LDUserSetAnonymous (previous , true);
547+
548+ LD_ASSERT (result = LDi_newAliasEvent (current , previous , 52 ));
549+
550+ LD_ASSERT (expected = LDNewObject ());
551+ LD_ASSERT (LDObjectSetKey (expected , "kind" , LDNewText ("alias" )));
552+ LD_ASSERT (LDObjectSetKey (expected , "creationDate" , LDNewNumber (52 )));
553+ LD_ASSERT (LDObjectSetKey (expected , "key" , LDNewText ("b" )));
554+ LD_ASSERT (LDObjectSetKey (expected , "contextKind" , LDNewText ("user" )));
555+ LD_ASSERT (LDObjectSetKey (expected , "previousKey" , LDNewText ("a" )));
556+ LD_ASSERT (LDObjectSetKey (expected , "previousContextKind" ,
557+ LDNewText ("anonymousUser" )));
558+
559+ LD_ASSERT (LDJSONCompare (result , expected ));
560+
561+ LDJSONFree (expected );
562+ LDJSONFree (result );
563+ LDUserFree (previous );
564+ LDUserFree (current );
565+ }
566+
567+ static void
568+ testAliasEventIsQueued ()
569+ {
570+ struct LDClient * client ;
571+ double metricValue ;
572+ const char * metricName ;
573+ struct LDJSON * payload , * event ;
574+ struct LDUser * previous , * current ;
575+
576+ LD_ASSERT (previous = LDUserNew ("p" ));
577+ LD_ASSERT (current = LDUserNew ("c" ));
578+
579+ LD_ASSERT (client = makeOfflineClient ());
580+
581+ LDClientAlias (client , current , previous );
582+
583+ LD_ASSERT (LDi_bundleEventPayload (client -> eventProcessor , & payload ))
584+
585+ LD_ASSERT (LDCollectionGetSize (payload ) == 1 );
586+ LD_ASSERT (event = LDArrayLookup (payload , 0 ));
587+ LD_ASSERT (strcmp ("alias" , LDGetText (LDObjectLookup (event , "kind" ))) == 0 );
588+
589+ LDUserFree (previous );
590+ LDUserFree (current );
591+ LDJSONFree (payload );
592+
593+ LDClientClose (client );
594+ }
595+
537596int
538597main ()
539598{
@@ -553,6 +612,8 @@ main()
553612 testDetailsIncludedIfDetailed ();
554613 testExperimentationFallthroughNonDetailed ();
555614 testExperimentationRuleNonDetailed ();
615+ testConstructAliasEvent ();
616+ testAliasEventIsQueued ();
556617
557618 LDBasicLoggerThreadSafeShutdown ();
558619
0 commit comments